如何在Windows中的package.json脚本中使用其他命令在生产中运行webpack?

时间:2017-09-18 16:10:08

标签: json node.js windows webpack gulp

我正在使用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']
        }
      }
    ]
  }
};

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 buildsevaluate environment variables