自己搭建一个jQuery的项目的步骤:


一:创建远程仓库

码云,腾讯开发者平台,github,阿里云。。。

二:将远程仓库克隆到本地

$git clone 你的项目地址

三:搭建项目源文件目录结构

HTML + CSS

JavaScript

jQuery

gulp

git

sass / less

requirejs

php + mySql

四:添加gulp功能(请保证电脑全局安装了NodeJS否则使用不了npm命令)

NodeJS下载方法 ​

  • 生成package.json文件
$npm init -y
  • 按照gulp及gulp插件
$cnpm install gulp gulp-sass gulp-uglify gulp-babel @babel/core @babel/preset-env gulp-htmlmin gulp-connect --save-dev

– gulp //

– gulp-sass //将sass文件编译成css文件的

– gulp-uglify //压缩js文件的

– gulp-babel @babel/core @babel/preset-env //将ES6代码转为ES5代码的

– gulp-htmlmin //压缩html文件的

– gulp-connect //浏览器自动刷新任务(实时监控)

  • 编写gulpfile.js文件(定制gulp任务,可看gulp官网)
// 引入模块
const
gulp = require("gulp"),//requires the core Gulp library需要核心gulp库
babel = require("gulp-babel"),
uglify = require("gulp-uglify"),
htmlmin = require("gulp-htmlmin"),
sass = require("gulp-sass"),
connect = require("gulp-connect");//定制浏览器自动刷新任务。通过在本地开启一个websocket服务,检测文件变化,当文件被修改后触发livereload任务,推送消息给浏览器刷新页面

// 定制任务:压缩JS
gulp.task("js", () => {
gulp.src("src/js/**/*.js")//找到路径为"src/js/**/*.js"的所有文件
.pipe(babel({
presets: ['@babel/env']
}))//pipe理解为管道,上一步处理完的数据会进来继续处理,
// 处理完毕流到下一个管道。所有这里先pipe(babel({presets:
// ['@babel/env']}))是用js()函数处理上一步匹配到的数据
.pipe(uglify())//.pipe(uglify())用uglify()函数处理上一步流过来的数据
.pipe(gulp.dest("dist/js"))//继续处理流过来的数据,通过dest方法把他们输出到"dist/js"目录
.pipe(connect.reload());//继续处理流过来的数据,然后执行浏览器刷新任务。
});

// 编译*.scss文件
gulp.task("sass", () => {
gulp.src("src/sass/**/*.scss")
.pipe(sass({ outputStyle: "compressed" }))
.pipe(gulp.dest("dist/css"))
.pipe(connect.reload());
});

// 压缩HTML文件
gulp.task("html", () => {
gulp.src("src/**/*.html")
.pipe(htmlmin({ collapseWhitespace: true, minifyJS: true }))
.pipe(gulp.dest("dist/"))
.pipe(connect.reload());
});


// 将 src 下的 images、lib、css 复制到 dist 目录下
gulp.task("copy-images", () => {
gulp.src("src/images/**/*.*")
.pipe(gulp.dest("dist/images"));
});
gulp.task("copy-lib", () => {
gulp.src("src/lib/**/*.*")
.pipe(gulp.dest("dist/lib"));
});
gulp.task("copy-css", () => {
gulp.src("src/css/**/*.*")
.pipe(gulp.dest("dist/css"));
});
gulp.task("copy-font", () => {
gulp.src("src/font/**/*.*")
.pipe(gulp.dest("dist/font"));
});

//定义复制文件任务,调用"copy-images", "copy-lib", "copy-css","copy-font"任务
gulp.task("copy", ["copy-images", "copy-lib", "copy-css", "copy-font"]);

// 启动 webserver
gulp.task('server', function () {
connect.server({
root: "dist",
port: 8080,
livereload: true
});
});

// 监视任务
gulp.task("watch", () => {
// 监听 sass 文件夹下的 *.scss文件的修改,当有修改文件,则执行 "sass" 任务
gulp.watch("src/sass/**/*.scss", ["sass"]);
// 监听html文件修改
gulp.watch("src/**/*.html", ["html"]);
// 监听js修改
gulp.watch("src/js/**/*.js", ["js"]);
});

// 默认任务,调用上面所有任务
gulp.task("default", ["sass", "js", "html", "copy", "server", "watch"]);


如果你是把笔者的gulpfile.js代码搞过去了,那你就可以在命令行使用glup运行项目了。


五:生成.gitignore文件

$touch .gitignore

.gitignore文件中的内容是在你提交代码时不提交的文件名

自己搭建一个jQuery的项目_搭建jQuery项目的过程

dist目录与node_modules目录没必要每次上传到代码托管平台,尤其是node_modules目录,如果你上传上去了,在下载的时候就会很久很久。而且没必要,我们项目依赖的插件已经在package中有说明了,我们只需要把远程代码拉取下来npm install就可以了。(如果此处没懂请在下方评论,笔者单独讲解)

六:提交初始版本(本地版本库)

$git add .
$git commit -m "xx"

七:推送到远程仓库

$git push



在官方文档中可以看到 protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。 Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。 * 获取对话框的窗口对象及参数对象以修改对话框的布局设置, * 可以直接调用getWindow(),表示获得这个Activity的Window * 对象,这样这可以以同样的方式改变这个Activity的属性. Window dialogWindow =