2017-09-18 5 views
0

私はMERNスタックと実行中のウィンドウを使用しています。このnpm runコマンドをpackage.jsonファイルから実行しようとしています。他のコマンドでWindowsのpackage.jsonスクリプトで本番環境でwebpackを実行するにはどうすればいいですか?

"scripts": { 
    "build": "set NODE_ENV=production webpack && gulp", 
    "postinstall": "npm run build", 
    "start": "node ./bin/www" 
    }, 

私はnpm run buildを実行すると、私は次のような結果を得る:何が起こる terminal results

は、一気の実行のように見え、それはそれです。私のバンドルは、プロダクション用には最適化されていません。必要な場合には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

あなたは、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はWebPACKの構成であることを。

+0

あなたは天才です!だから私はあなたが投稿した他のオプションを見て、あなたは3つの異なるwebpackファイルを持っていなければならないようでした。この方法はより最適化されていますか? –

+0

設定を別々のファイルに分割することは、いくつかの開発者/プロジェクト間で普及しています。私はそれが構成の関連部分にナビゲートすることをより困難にするので、それのファンではありません。あるいは、webpackの設定で[環境変数を評価する](https://webpack.js.org/guides/environment-variables/)が必要な場合もあります。 – simon04

関連する問題