zoukankan      html  css  js  c++  java
  • gulp入门与一些基本设置

    这里是gulp入门的一些操作,实现了编译sass文件、压缩、合并、添加版本号等基本功能。

    友情提示,如果npm出现无法下载可以安装 cnpm。在安装完Nodejs 后 

    1. npm install cnpm -g --registry=https://registry.npm.taobao.org  

    完成后可

    1. cnpm -v  

    查看安装结果

    1.安装Nodejs

    选择合适的版本下载Nodejs

    2.安装全局gulp

    1. npm install --global gulp-cli  

    3.进入项目目录(之后的操作全是在此目录下进行)

    1. cd desktop/myprogram  

    4.初始化package.json

    1. npm init  

    5.安装项目gulp

    1. npm install --save-dev gulp  

    6.安装插件

    1. npm install gulp-htmlmin gulp-imagemin imagemin-pngcrush gulp-jshint jshint  gulp-uglify gulp-notify gulp-useref gulp-load-plugins  gulp-clean-css gulp-sass  gulp-if gulp-users gulp-rev gulp-rev-collector  —save-dev  


    7.新建gulpfile.js

    [javascript] view plain copy 在CODE上查看代码片派生到我的代码片
    1. var gulp = require('gulp');  
    2.     gulp.task('default', function() {  
    3.         // place code for your default task here  
    4.     });  


    8.测试

    在终端输入命令

    1. gulp  


    9.附上index.html(压缩css、js部分) 、package.json 和 gulpfile.js

    index.html

    1. <link rel="shortcut icon" href="images/favicon.ico">  
    2. <!-- build:css lib/main.css -->  
    3. <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">  
    4. <link rel="stylesheet" type="text/css" href="css/main.css">  
    5. <link rel="stylesheet" type="text/css" href="css/common.css">  
    6. <!-- endbuild -->  
    7.   
    8. <!-- build:js lib/main.js -->  
    9. <script type="text/javascript" src="js/jquery.min.js"></script>  
    10. <script type="text/javascript" src="js/bootstrap.min.js"></script>  
    11. <script type="text/javascript" src="js/route.js"></script>  
    12. <script type="text/javascript" src="js/main.js"></script>  
    13. <!-- endbuild -->  


    package.json

    [javascript] view plain copy 在CODE上查看代码片派生到我的代码片
    1. "devDependencies": {  
    2.     "del": "^2.2.0",  
    3.     "gulp": "^3.9.1",  
    4.     "gulp-clean-css": "^2.0.8",  
    5.     "gulp-concat": "^2.6.0",  
    6.     "gulp-htmlmin": "^2.0.0",  
    7.     "gulp-if": "^2.0.1",  
    8.     "gulp-imagemin": "^3.0.1",  
    9.     "gulp-jshint": "^2.0.1",  
    10.     "gulp-load-plugins": "^1.2.4",  
    11.     "gulp-notify": "^2.2.0",  
    12.     "gulp-rev": "^7.0.0",  
    13.     "gulp-rev-collector": "^1.0.3",  
    14.     "gulp-sass": "^2.3.1",  
    15.     "gulp-sequence": "^0.4.5",  
    16.     "gulp-uglify": "^1.5.3",  
    17.     "gulp-useref": "^3.1.0",  
    18.     "imagemin-pngcrush": "^5.0.0",  
    19.     "jshint": "^2.9.2"  
    20.   }  


    gulpfile.js

    [javascript] view plain copy 在CODE上查看代码片派生到我的代码片
    1. 'use strict';  
    2. var gulp = require('gulp'),  
    3.     $ = require("gulp-load-plugins")(),  
    4.     sass = require("gulp-sass"),  
    5.     rev = require("gulp-rev"),  
    6.     del = require('del');  
    7.   
    8. gulp.task('default', function() {  
    9.   gulp.run('styles', 'jshint');  
    10.   gulp.watch('src/styles/*.scss', ['styles']);  
    11. });  
    12.   
    13. gulp.task('build', $.sequence('cpfiles', 'useref', 'cphtml', 'revfile',  
    14.           'revhtml', 'delfiles', 'img','htmlmin'));  
    15.   
    16.   
    17. gulp.task('htmlmin', function() {  
    18.   return gulp.src(['dist/*/*.html', 'dist/*.html'])  
    19.     .pipe($.htmlmin({collapseWhitespace: true}))  
    20.     .pipe(gulp.dest('dist/'))  
    21.     .pipe($.notify({ message: 'htmlmin task done' }));  
    22. });  
    23.   
    24. gulp.task('delfiles', function(){  
    25.   del([  
    26.     'dist/js',  
    27.     'dist/css',  
    28.     'dist/styles',  
    29.     'dist/lib/index.html',  
    30.     'dist/lib/rev-manifest.json'  
    31.   ]);  
    32. })  
    33.   
    34. gulp.task('revhtml', function () {  
    35.   return gulp.src(['dist/lib/rev-manifest.json', 'dist/lib/index.html'])  
    36.     .pipe($.revCollector())  
    37.     .pipe(gulp.dest('dist/'))  
    38.     .pipe($.notify({ message: 'revhtml task done' }));  
    39. });  
    40.   
    41. gulp.task('revfile', function(){  
    42.   return gulp.src(['dist/lib/*.css', 'dist/lib/*.js'])  
    43.     .pipe($.rev())  
    44.     .pipe(gulp.dest('dist/lib/'))  
    45.     .pipe(rev.manifest({  
    46.       path: 'rev-manifest.json',  
    47.       merge: true  
    48.     }))  
    49.     .pipe(gulp.dest("dist/lib/"))  
    50.     .pipe($.notify({ message: 'revfile task done' }));  
    51. });  
    52.   
    53. gulp.task('cphtml', function(){  
    54.   return gulp.src('dist/*.html')  
    55.     .pipe(gulp.dest('dist/lib/'))  
    56.     .pipe($.notify({ message: 'copyhtml task done' }));  
    57. })  
    58.   
    59. gulp.task('useref', function() {  
    60.   return gulp.src('dist/*.html')  
    61.     .pipe($.useref())  
    62.     .pipe($.if('*.js', $.uglify()))  
    63.     .pipe($.if('*.css', $.cleanCss({compatibility: 'ie8'})))  
    64.     .pipe(gulp.dest('dist/'))  
    65.     .pipe($.notify({ message: 'useref task done' }));  
    66. });  
    67.   
    68. gulp.task('cpfiles', ['styles'], function(){  
    69.   return gulp.src(['src/*/*','src/*'])  
    70.     .pipe(gulp.dest('dist/'))  
    71.     .pipe($.notify({ message: 'copyfiles task done' }));  
    72. })  
    73.   
    74. gulp.task('img', function() {  
    75.   return gulp.src('dist/images/*.*')  
    76.     .pipe($.imagemin({  
    77.         progressive: true,  
    78.         svgoPlugins: [{removeViewBox: false}],  
    79.         use: [$.imagemin()]  
    80.     }))  
    81.     .pipe(gulp.dest('dist/images/'))  
    82.     .pipe($.notify({ message: 'img task done' }));  
    83. });  
    84.   
    85. gulp.task('styles', function(){  
    86.   return gulp.src('src/styles/*.scss')  
    87.     .pipe(sass().on('error', sass.logError))  
    88.     .pipe(gulp.dest('src/css'))  
    89.     .pipe($.notify({ message: 'sass task done' }));  
    90. })  
    91.   
    92. gulp.task('jshint', function() {  
    93.   return gulp.src(['src/js/main.js','src/js/route.js'])  
    94.     .pipe($.jshint())  
    95.     .pipe($.jshint.reporter('default'))  
    96.     .pipe($.notify({ message: 'jshint task done' }));  
    97. });  
    98.   
    99. gulp.task('clean', function(){  
    100.   del([  
    101.     'dist/'  
    102.     ]);  
    103. })  


    文件结构,上层为 desktop/myprogram/

  • 相关阅读:
    洛谷1076 寻宝
    洛谷1349 广义斐波那契数列 【矩阵乘法】
    BZOJ1008 [HNOI2008]越狱
    vijosP1629 八
    vijosP1687 细菌总数
    vijosP1388 二叉树数
    怎么在windows上安装 ansible How to install ansible to my python at Windows
    阿里邮箱绑定Foxmail失败的解决办法
    Django html页面 'ascii' codec can't encode characters in position 8-10: ordinal not
    python2.X现在不能安装Django了:Collecting django Using cached Django-2.0.tar.gz
  • 原文地址:https://www.cnblogs.com/sxz2008/p/6378067.html
Copyright © 2011-2022 走看看