gulpfile.js gulp升级后gulpfile.js的变化 gulp执行shell

框架升级,gulp也从3.9升到4.0。还是有一些变化的。具体如下:

3.9版:

var gulp = require('gulp');
const del = require('del');
const fs = require('fs-extra');
const path = require('path');
const shell = require('gulp-shell');

gulp.task('del-build', function() {
  return del('./build/dist/*', { force: true });
});

gulp.task('add-packagejson', ['del-build'], function() {
  return (function() {
    const packageJson = path.join(__dirname, './package.json');
    const assetsURL = path.join(__dirname, './src/assets');
    const distFolder = path.join(__dirname, './build/dist');
    const packageConfig = fs.readJsonSync(packageJson);
    fs.outputJson(distFolder + '/package.json', packageConfig);
    fs.copySync(assetsURL, distFolder + '/assets'); // 拷贝静态文件到编译目录
  })();
});

gulp.task('build', ['add-packagejson'], shell.task(['yarn run tsc']));
4.0版:
var gulp = require('gulp');
const del = require('del');
const fs = require('fs-extra');
const path = require('path');
const shell = require('gulp-shell');

gulp.task('del-build', gulp.series( function() {
  return del('./build/dist/*', { force: true });
}));

gulp.task('add-packagejson', gulp.series(['del-build'],shell.task(['yarn run tsc']),function(done) {
  // gulp 4.0 需要用 gulp.series(),和done()结束。例如 gulp.series()('[del'],...,function(done))
  return (function() {
    const packageJson = path.join(__dirname, './package.json');
    const assetsURL = path.join(__dirname, './src/assets');
    const distFolder = path.join(__dirname, './build/dist');
    const packageConfig = fs.readJsonSync(packageJson);
    fs.outputJson(distFolder + '/package.json', packageConfig);
    console.log('拷贝静态文件到编译目录');
    fs.copySync(assetsURL, distFolder + '/assets'); 
    done();
  })();
}));

gulp.task('build',gulp.series(['add-packagejson']));

 


上一篇:Grunt+Gulp+Webpack知识点整理


下一篇:关于PHP中拿到MySQL中数据中的中文在网页上显示为?的解决办法!