安装Node.js
直接下载,安装
npm
- 安装
较新版本Node自带,基本不用自己装 - 初始化
npm init
之后一路next - 安装依赖
npm install --production
安装package.json里已经声明了依赖(只安装dependencies)npm install
安装package.json里已经声明了依赖(包括:devDependencies和dependencies)
gulp
- 全局安装gulp(‘-g‘:全局安装)
npm install gulp -g
- 下载要用到的插件(‘-g‘:全局安装)
npm install gulp-minify-css gulp-jshint gulp-concat gulp-uglify gulp-imagemin gulp-notify gulp-livereload gulp-rename -g
- 添加一个gulp的依赖
npm install gulp --save-dev
项目依赖分两种,一个就是普通的项目依赖比如bootstrap(--save),还用一种只是开发阶段需要用的,这种属于开发依赖比如gulp,开发依赖最终记录在devDependencies节点里面(--save-dev)
压缩css(gulp-minify-css)
js代码校验(gulp-jshint)
合并js文件(gulp-concat)
压缩js代码(gulp-uglify)
压缩图片(gulp-imagemin)
文件重命名 (gulp-rename)
自动刷新页面(gulp-livereload)
更改提醒(gulp-notify)
合并js顺序(gulp-order) - 构建gulpfile.js
在项目的根目录,新建一个gulpfile.js的文件,这个是gulp的主执行文件,且文件名是固定的,不能修改,gulp命令执行的时候,会去找这个文件。 - 执行gulp
gulp
输入gulp即可
gulpfile.js:
//引入插件var gulp = require(‘gulp‘), ??// minifycss = require(‘gulp-minify-css‘), ??uglify = require(‘gulp-uglify‘), //压缩js代码 ??rename = require(‘gulp-rename‘), //文件重命名 ??concat = require(‘gulp-concat‘), //合并js文件 ??notify = require(‘gulp-notify‘), //更改提醒 ??livereload = require(‘gulp-livereload‘); //自动刷新页面//js代码校验、合并和压缩(类似jquery的链式操作)gulp.task(‘scripts‘, function() { ??return gulp.src(‘src/**/*.js‘) //源文件 ??????.pipe(concat(‘empty_dimension.js‘)) ?//合并js文件,empty_dimension.js为合并的文件名称 ??????.pipe(gulp.dest(‘dist‘)) ?//合并后文件存放位置 ??????.pipe(rename({ ??????????suffix: ‘.min‘ ??????})) ??????.pipe(uglify()) ????????//执行压缩任务 ??????.pipe(gulp.dest(‘dist‘)) ?//压缩后文件存放位置 ??????.pipe(notify({ ???//操作结束后提示 ??????????message: ‘Scripts task complete‘ ??????}));});// 默认任务,这里完全可以是多个任务,比如压缩CSS,压缩图片,压缩js等gulp.task(‘default‘,[‘watch‘], function() { ??gulp.start(‘scripts‘);});// 监听gulp.task(‘watch‘, function() { ??// 监听 .js文件改动,一旦改动就会自动压缩合并 ??gulp.watch(‘src/**/*.js‘, [‘scripts‘]); ??// Create LiveReload server(用来自动刷新浏览器) ??livereload.listen(); ??// Watch any files in dist/, reload on change ??gulp.watch([‘dist/**‘]).on(‘change‘, livereload.changed);});