Heroku にデプロイした後に Webpack ビルドをトリガーする最良の方法は何ですか?
最も美しいソリューションではない、既にバンドルされているバージョンをプッシュします。
これはどのようなアプリケーションですか? package.json を使用している場合は、npm スクリプトを使用してインストール後のステップで webpack を実行できます。
postinstall
package.json で次のように設定できます。NODE_ENV=production webpack -p
次にstart
、node
ただし、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": ...