Qual è il modo migliore per attivare la compilazione di Webpack dopo la distribuzione in Heroku?Come creare un pacchetto web su heroku?
Spingere la versione già fornita in bundle non è la soluzione più bella.
Qual è il modo migliore per attivare la compilazione di Webpack dopo la distribuzione in Heroku?Come creare un pacchetto web su heroku?
Spingere la versione già fornita in bundle non è la soluzione più bella.
Che tipo di applicazione è questa? Se si utilizza un pacchetto package.json, è possibile eseguire webpack nel passaggio postinstall utilizzando gli script npm.
Ho risolto questo problema mettendo in devDependencies dipendenze normali, e ho cambiato dello script successivo a:
node_modules/.bin/webpack
È possibile impostare postinstall
nel vostro package.json al seguente NODE_ENV=production webpack -p
Quindi impostare start
a node
Ma sarà necessario assicurarsi di configurare il proprio webpack per la produzione impostandolo nel proprio file web.config.js o bpack.config.js (produzione) come configurazione di produzione.
ho impostato tutto dentro le mie webpack.config.js come segue ..
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
})
]
}
Quindi, fondamentalmente, una volta che il comando viene eseguito npm run postinstall
fascio verrà generato nella directory come da webpack.config.js (output) . Ricorda però di includere nel pacchetto package.json i comandi NODE_ENV=production webpack -p
prima di eseguire "npm start". Vedere l'esempio sotto ..
{
"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": ...
Sto compilando il pacchetto Web in modo programmatico (dal mio index.js) e funziona solo sul mio computer locale. Ha senso, il filesystem dei dynos non dovrebbe essere di sola lettura? –