如何从 webpack 运行 gulp 任务

how to run gulp tasks from webpack

我最近将 gulp 更新到 4+ 版本,然后 gulp 不再启动监视任务。 我究竟做错了什么?下面是代码 gulp 3+ 到 gulp 4 的更新版本,我根据 gulp4 文档使用 gulp.series。

npm run build 命令之前会将资产文件夹复制到其他 2 个地方,它不再启动 gulp 任务和 gulp 手表。

给定 myGulpFile.js

var gulp = require('gulp');
var path = require('path');

gulp.task('copytask', function() {
    gulp.src(['assets/**/*']).pipe(gulp.dest('buildpath/assets'))
        .pipe(gulp.dest(path.resolve(__dirname, '../somepath/assets')));
});
gulp.task('watchtask', gulp.series( function watchtask(){
    gulp.watch('assets/**/*', gulp.series('copytask'));
}));
gulp.task('default',gulp.series('watchtask', function (done) {
    console.log("Gulp started now from webpack!!");
done();
}));

考虑到我的 package.json for webpack

  "main": "webpack.config.js",
  "scripts": {
    "build": "webpack --progress -c",
    "watch": "webpack -w --progress -c",
    "dev": "webpack-dev-server --devtool eval --progress --colors --content-base build",
    "deploy": "NODE_ENV=production webpack --config webpack.production.config.js"
  },

和我的webpack.config.js

var webpack = require('webpack');
var something ...;

require('./myGulpFile');

var config = {
...
}

module.exports = config;

非常感谢任何有关此的帮助!

编辑:为了进一步澄清我的问题,我想 运行 gulp 通过 运行 仅使用一个 webpack 命令并自动启动 gulp 任务(这发生在 gulp3+ 版本中使用上述过程)但在更新到 gulp4 版本后中断。

我认为现在您需要使用 gulp 来执行默认的 gulp 和 gulp <name-of-task> 来执行考虑的任务 gulp,例如 gulp copytask .

它现在可以工作了,我最终更改了 package.json 命令并将 && gulp -f myGulpFile.js 添加到构建、开发、部署命令的末尾,如下所示。这将在 webpack 命令之后立即启动 gulp 任务,你只需要 运行 一个初始 webpack 命令 npm run build

 "scripts": {
   "build": "webpack --progress -c && gulp -f myGulpFile.js",
   "watch": "webpack -w --progress -c",
   "dev": "webpack-dev-server --devtool eval --progress --colors --content-base build && gulp -f myGulpFile.js",
   "deploy": "NODE_ENV=production webpack --config webpack.production.config.js && gulp -f myGulpFile.js"
 }, ```