1.安装各种依赖
  1. npm install gulp --save
  2. npm install gulp-babel@7 --save-dev // 安装7以下的版本,如果安装8.0以上的版本,会导致文件无法输出
  3. 参考: https://www.cnblogs.com/wennice/p/9871118.html
  4. gulp-concatgulp-uglifygulp-rename 等等,按需加装
2.指定src、dest
  1. src('src/directives/*.js')
  2. .pipe(gulp.dest('dist/js'));
3.添加语法编译、压缩、重命名过程
  1. .pipe(babel({
  2. presets: ['es2015']
  3. }))
  4. .pipe(uglify())
  5. .pipe(rename({suffix:'.min'}))
4.watch,文件变化实时编译
  1. gulp.task(‘watch’, [‘js-min’], function() {
  2. gulp.watch([‘src/directives/*.js’], [‘js-min’]);
  3. });
5.执行gulp命令
  1. 在项目根目录下运行gulp命令,前提是gulpfile.js配置文件在根目录下
  2. 也可以指定gulp执行文件。 --gulpfile <gulpfile path>
  1. 参数标记
  2. gulp 只有你需要熟知的参数标记,其他所有的参数标记只在一些任务需要的时候使用。
  3. -v --version 会显示全局和项目本地所安装的 gulp 版本号
  4. --require <module path> 将会在执行之前 reqiure 一个模块。这对于一些语言编译器或者需要其他应用的情况来说来说很有用。你可以使用多个--require
  5. --gulpfile <gulpfile path> 手动指定一个 gulpfile 的路径,这在你有很多个 gulpfile 的时候很有用。这也会将 CWD 设置到该 gulpfile 所在目录
  6. --cwd <dir path> 手动指定 CWD。定义 gulpfile 查找的位置,此外,所有的相应的依赖(require)会从这里开始计算相对路径
  7. -T --tasks 会显示所指定 gulpfile task 依赖树
  8. --tasks-simple 会以纯文本的方式显示所载入的 gulpfile 中的 task 列表
  9. --color 强制 gulp gulp 插件显示颜色,即便没有颜色支持
  10. --no-color 强制不显示颜色,即便检测到有颜色支持
  11. --silent 禁止所有的 gulp 日志
6.整合 streams 来处理错误
  1. //stream
  2. gulp.task('js-min-stream', function () {
  3. var combined = combiner.obj([
  4. gulp.src('src/directives/*.js'),
  5. babel({
  6. presets: ['es2015']
  7. }),
  8. uglify(),
  9. rename({ suffix: '.min' }),
  10. gulp.dest('dist/js')
  11. ]);
  12. // 任何在上面的 stream 中发生的错误,都不会抛出,
  13. // 而是会被监听器捕获
  14. combined.on('error', console.error.bind(console));
  15. return combined;
  16. });

错误信息:

gulpfile.js

  1. var gulp = require('gulp');
  2. gulpif = require('gulp-if');
  3. concat = require('gulp-concat');
  4. rename = require('gulp-rename');
  5. uglify = require('gulp-uglify');
  6. clean = require('gulp-clean');
  7. babel = require('gulp-babel'); //支持es6
  8. gulp.task('clean',function(){
  9. gulp.src(['dist/*'],{read:false})
  10. .pipe(clean());
  11. });
  12. //转移js
  13. gulp.task('src-move',function(){
  14. gulp.src('src/directives/*.js')
  15. .pipe(gulp.dest('dist/directives'));
  16. // gulp.src('src/css/*.css')
  17. // .pipe(gulp.dest('dist/css'));
  18. });
  19. //压缩js文件
  20. gulp.task('js-min',function(){
  21. gulp.src('src/directives/*.js')
  22. .pipe(babel({
  23. presets: ['es2015']
  24. }))
  25. .pipe(uglify())
  26. .pipe(rename({suffix:'.min'}))
  27. .pipe(gulp.dest('dist/js'));
  28. });
  29. //stream
  30. gulp.task('js-min-stream', function () {
  31. var combined = combiner.obj([
  32. gulp.src('src/directives/*.js'),
  33. babel({
  34. presets: ['es2015']
  35. }),
  36. uglify(),
  37. rename({ suffix: '.min' }),
  38. gulp.dest('dist/js')
  39. ]);
  40. // 任何在上面的 stream 中发生的错误,都不会抛出,
  41. // 而是会被监听器捕获
  42. combined.on('error', console.error.bind(console));
  43. return combined;
  44. });
  45. gulp.task('watch', ['js-min'], function() {
  46. gulp.watch(['src/directives/*.js'], ['js-min']);
  47. });
附加:实战应用

解决C端util.js里面写es2015语法,打包报错的问题
修改项目根目录文件Gulpfile.js

  1. gulp.task('js-other', function(){
  2. return gulp.src(libJS.other, { root: './'})
  3. .pipe(babel({ presets: [
  4. require('babel-preset-es2015'),
  5. require('babel-preset-stage-2'),
  6. ]}))
  7. .pipe(concat('other.min.js'))
  8. .pipe(streamify(uglify()))
  9. .pipe(gulp.dest('./dist/lib'));
  10. })
.babelrc
  1. {
  2. "presets": [
  3. ["@babel/preset-env", {
  4. "targets": {
  5. "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
  6. },
  7. "modules": "commonjs"
  8. }],
  9. ],
  10. "plugins": [
  11. ["@babel/plugin-transform-runtime", {"corejs": 2}]
  12. ]
  13. }
  14. {"corejs": 2}
  15. var _interopRequireDefault = require("D:\\code\\table-column-filter\\node_modules\\@babel\\runtime-corejs2/helpers/interopRequireDefault");
  16. var _typeof2 = _interopRequireDefault(require("D:\\code\\table-column-filter\\node_modules\\@babel\\runtime-corejs2/helpers/esm/typeof"));
  17. var _stringify = _interopRequireDefault(require("D:\\code\\table-column-filter\\node_modules\\@babel\\runtime-corejs2/core-js/json/stringify"));
文档更新时间: 2019-05-21 12:07