【发布时间】:2017-02-28 13:18:19
【问题描述】:
我使用 gulp 运行 Webpack,带有 webpack-stream。
我使用这个config 并与我一起工作。
如何从 gulp 运行 Webpack production-build webpack -p?
【问题讨论】:
我使用 gulp 运行 Webpack,带有 webpack-stream。
我使用这个config 并与我一起工作。
如何从 gulp 运行 Webpack production-build webpack -p?
【问题讨论】:
Webpack 4 支持在配置对象中指定mode: "production"。
这是配置(无耻地借用 Sven 的回答):
var gulp = require('gulp');
var webpackStream = require('webpack-stream');
var webpack4 = require('webpack'); // Assuming we've installed Webpack 4+
gulp.task('default', function() {
var options = {
mode: "production"
};
return gulp.src('src/entry.js')
.pipe(webpackStream(options, webpack4))
.pipe(gulp.dest('dist/'));
});
【讨论】:
根据webpack documentation使用webpack -p等价于:
webpack --optimize-minimize --define process.env.NODE_ENV="'production'"
这两个选项分别添加了webpack.optimize.UglifyJsPlugin 和webpack.DefinePlugin。
你需要做的是在你的 webpack 配置中手动添加这两个插件。
根据您链接到的the other answer,应该如下所示:
var gulp = require('gulp');
var webpackStream = require('webpack-stream');
var webpack2 = require('webpack');
gulp.task('default', function() {
var options = {
plugins: [
new webpack2.DefinePlugin({
'process.env': { 'NODE_ENV': "'production'" }
}),
new webpack2.optimize.UglifyJsPlugin()
]
};
return gulp.src('src/entry.js')
.pipe(webpackStream(options, webpack2))
.pipe(gulp.dest('dist/'));
});
【讨论】: