9

Heroku にデプロイした後に Webpack ビルドをトリガーする最良の方法は何ですか?

最も美しいソリューションではない、既にバンドルされているバージョンをプッシュします。

4

3 に答える 3

5

これはどのようなアプリケーションですか? package.json を使用している場合は、npm スクリプトを使用してインストール後のステップで webpack を実行できます。

于 2014-12-18T20:18:05.097 に答える
3

postinstallpackage.json で次のように設定できます。NODE_ENV=production webpack -p

次にstartnode

ただし、webpack.config.js または webpack.config.js(production) 内で運用構成として設定することにより、Webpack を運用用に構成する必要があります。

次のようにwebpack.config.js内のすべてを設定しました..

const path = require('path');
const webpack = require('webpack');
const debug = process.env.NODE_ENV !== "production";


module.exports = {
  entry: [
    './src/index.js'
  ],
  output: {
    path: path.resolve(__dirname, 'src'),
    filename: 'bundle.js'
  },
  devtool: debug ? "inline-sourcemap" : null,
  module: {
    loader: [{
      exclude: /node_modules/,
      loader: 'babel',
      query: {
        presets: ['angular']
      }
    },
    {
      test: /\.css$/,
      loader: "style-loader!css-loader"
     }]
  },
  devServer: {
    historyApiFallback: true,
    contentBase: 'src'
  },
  plugins: debug ? [] : [
    new webpack.optimize.DedupePlugin(),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.optimize.UglifyJsPlugin({
    mangle: {except: ['$', 'exports', 'require', 'app']},
    compress: {warnings: false},
    sourceMap: false
  })
  ]
}

したがって、基本的に、コマンドが実行npm run postinstall されると、webpack.config.js (出力) に従って、バンドルがディレクトリに生成されます。NODE_ENV=production webpack -pただし、 「npm start」を実行する前に、package.json にコマンドを含めることを忘れないでください。以下の例を参照してください。

{
  "name": "",
  "version": "1.0.0",
  "description": "",
  "main": "./src/bundle.js",
  "engines": {
    "node": "6.4.0"
  },
  "scripts": {
    "start": "node ./src/server.js",
    "postinstall": "NODE_ENV=production webpack -p"
  },
  "author": "",
  "license": "ISC",
  "dependencies": ...
于 2016-09-23T06:18:52.027 に答える