一、下载并安装Node.js
C:\Users\Administrator>node -v v11.0.0
二、安装npm,安装淘宝cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org C:\Users\Administrator>cnpm -v cnpm@6.0.0 (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm\lib\parse_argv.js) npm@6.5.0 (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm\node_modules\npm\lib\npm.js) node@11.0.0 (C:\Program Files\nodejs\node.exe) npminstall@3.17.0 (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\index.js) prefix=C:\Users\Administrator\AppData\Roaming\npm win32 x64 10.0.17763 registry=https://registry.npm.taobao.org
三、全局安装gulp
C:\Users\Administrator>cnpm install --global gulp
四、局部安装gulp
切换到项目的根目录,局部安装是安装到你项目的根目录
npm install gulp --save-dev F:\DevSpace\Gulp>npm install gulp --save-dev npm WARN saveError ENOENT: no such file or directory, open 'F:\DevSpace\Gulp\package.json' npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN enoent ENOENT: no such file or directory, open 'F:\DevSpace\Gulp\package.json' npm WARN Gulp No description npm WARN Gulp No repository field. npm WARN Gulp No README data npm WARN Gulp No license field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) + gulp@4.0.0 added 318 packages from 217 contributors and audited 6376 packages in 26.887s found 0 vulnerabilities
五、项目初始化,生成package.json
F:\DevSpace\Gulp>npm init -y This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (gulp) version: (1.0.0) description: entry point: (gulpfile.js) test command: git repository: keywords: author: license: (ISC) About to write to F:\DevSpace\Gulp\package.json: { "name": "gulp", "version": "1.0.0", "description": "", "main": "gulpfile.js", "dependencies": { "gulp": "^4.0.0" }, "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } Is this OK? (yes) F:\DevSpace\Gulp>
六、初始化gulpfile.js 的文件
var gulp = require('gulp'); gulp.task('default', function() { // 将你的默认的任务代码放在这 }); 执行gulp命令 F:\DevSpace\Gulp>gulp [16:54:12] Using gulpfile F:\DevSpace\Gulp\gulpfile.js [16:54:12] Starting 'default'... hello gulp
七、安装项目组件
cnpm install -D gulp gulp-minify-css gulp-cssmin gulp-minify-html gulp-uglify --save-dev cnpm install -D gulp-jshint --save-dev cnpm install -D gulp-rename gulp-concat gulp-clean gulp-notify --save-dev cnpm install -D browser-sync gulp-sass gulp-clean-css gulp-watch --save-dev cnpm install -D gulp-connect gulp-less imagemin-pngquantgulp-imagemin --save-dev
压缩JS,CSS文件需要引用如下组件:
- gulp-minify-css: 压缩css
- gulp-jshint: 检查js
- gulp-uglify: 压缩js
- gulp-concat: 合并文件
- gulp-rename: 重命名文件
- gulp-clean: 清空文件夹
- gulp-notify:提示
- browser-sync:
- gulp-sass:sass编译
八、创建任务,并执行
在开发目录执行gulp命令,启动编译任务。
九、删除
1、安装:npm install -g rimraf(全局安装),
如果安装了cnpm,也可使用cnpm install -g rimraf 命令
2、使用:先定位目标文件夹的父级目录,
然后命令行输入rimraf (为需要删除的文件夹名称)
附件一:gulpfile.js示例1
// 引入 gulp及组件 var gulp=require('gulp'), //gulp基础库 minifycss=require('gulp-minify-css'), //css压缩 concat=require('gulp-concat'), //合并文件 uglify=require('gulp-uglify'), //js压缩 rename=require('gulp-rename'), //文件重命名 jshint=require('gulp-jshint'), //js检查 notify=require('gulp-notify'); //提示 gulp.task('default',function(){ gulp.start('minifycss','minifyjs'); }); //css处理 gulp.task('minifycss',function(){ return gulp.src('htdocs/kunpeng/static/css/*.css') //设置css .pipe(concat('order_query.css')) //合并css文件到"order_query" .pipe(gulp.dest('dist/styles')) //设置输出路径 .pipe(rename({suffix:'.min'})) //修改文件名 .pipe(minifycss()) //压缩文件 .pipe(gulp.dest('dist/styles')) //输出文件目录 .pipe(notify({message:'css task ok'})); //提示成功 }); //JS处理 gulp.task('minifyjs',function(){ return gulp.src(['/static/js/juicer-min.js','/static/js/bootstrap.min.js','/static/js/bootstrap-datetimepicker.min.js','/static/js/order_query.js']) //选择合并的JS .pipe(concat('order_query.js')) //合并js .pipe(gulp.dest(''dist/js')) //输出 .pipe(rename({suffix:'.min'})) //重命名 .pipe(uglify()) //压缩 .pipe(gulp.dest('dist/js')) //输出 .pipe(notify({message:"js task ok"})); //提示 });
附件二:gulpfile.js示例2
var gulp = require('gulp'); var rename = require('gulp-rename');//重命名 var uglify=require('gulp-uglify');//js压缩 var watch=require('gulp-watch');//监视 var less=require('gulp-less');//编译less var minifyCss = require("gulp-minify-css");//压缩CSS var minifyHtml = require("gulp-minify-html");//压缩html var jshint = require("gulp-jshint");//js检查 var imagemin = require('gulp-imagemin'); var pngquant = require('imagemin-pngquant'); //png图片压缩插件 var connect=require('gulp-connect');//引入gulp-connect模块 // gulp.task('min', function () { // gulp.src('copyUrl/js/resize.js') // 要压缩的js文件 // .pipe(uglify()) //使用uglify进行压缩,更多配置请参考: // .pipe(rename('resize.min.js')) // .pipe(gulp.dest('dist/fot')); //压缩后的路径 // }); gulp.task('watchs',function(){ gulp.watch('cug_vatti_Backpass/*.html',gulp.series('html')); gulp.watch('cug_vatti_Backpass/css/*.less',gulp.series('css')); gulp.watch('cug_vatti_Backpass/js/*.js',gulp.series('js')); }) gulp.task('connect',function(){ connect.server({ root:'cug_vatti_Backpass',//根目录 // ip:'192.168.11.62',//默认localhost:8080 livereload:true,//自动更新 port:9909//端口 }) }) gulp.task('html',function(){ return gulp.src('cug_vatti_Backpass/*.html') .pipe(gulp.dest('dist/html')) .pipe(connect.reload()); }) gulp.task('css',function(){ return gulp.src('cug_vatti_Backpass/css/*.less') .pipe(less())//编译less .pipe(gulp.dest('cug_vatti_Backpass/css')) //当前对应css文件 .pipe(connect.reload());//更新 }) gulp.task('js',function(){ return gulp.src('cug_vatti_Backpass/js/jquery-1.8.0.min.js') .pipe(jshint())//检查代码 .pipe(uglify())//压缩js .pipe(gulp.dest('dist/js')) .pipe(connect.reload()); }) //gulp.series|4.0 依赖 //gulp.parallel|4.0 多个依赖嵌套 gulp.task('default',gulp.series(gulp.parallel('connect','watchs','html','css','js')));
其他注意事项
1、charset和import格式化
识别内容
@charset 'utf-8';
@import 'const.scss';2、导入scss命名格式,要以下划线开头
来源:https://www.cnblogs.com/taony/p/10177730.html