我正在使用MERN堆栈并运行Windows 10.我正在尝试从npm run
文件运行此package.json
命令。
"scripts": {
"build": "set NODE_ENV=production webpack && gulp",
"postinstall": "npm run build",
"start": "node ./bin/www"
},
当我运行npm run build
时,我得到以下结果:
terminal results
看起来像gulp运行会发生什么事情就是这样。我的捆绑包根本没有针对生产进行优化。我将在需要时包含webpack文件。
const webpack = require('webpack');
const path = require('path');
module.exports = {
entry: {
app: './src/app.js'
},
output: {
filename: 'public/build/bundle.js',
sourceMapFilename: 'public/build/bundle.map'
},
devtool: '#source-map',
plugins:
process.env.NODE_ENV === 'production'
? [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production')
}
}),
new webpack.optimize.UglifyJsPlugin({
minimize: true,
compress: {
warning: true
}
})
]
: [],
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /(node_modules)/,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015', 'stage-1']
}
}
]
}
};
答案 0 :(得分:0)
您可能希望使用cross-env,这是一种独立于平台的方式来使用环境变量:
"scripts": {
"build": "cross-env NODE_ENV=production webpack && gulp",
// or if the former does not work
"build": "npm run build:webpack && gulp",
"build:webpack": "cross-env NODE_ENV=production webpack",
},
请注意,网络包配置中有other ways to do production builds或evaluate environment variables。