如何从 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"
}, ```
我最近将 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"
}, ```