2017-05-18 17 views
1

我有一個Node應用程序,它使用Webpack構建React並託管在Heroku上。每當我將新版本推送到Heroku master時,React文件都不會更新。我現在已經推出了幾個較新的版本,但webpack://中的React文件不會更新,而是我第一次部署應用程序時保留的原始文件。Webpack不在Heroku上更新重建

這裏是我的webpack.config.js文件:

const webpack = require('webpack'); 
const path = require('path'); 

module.exports = { 
entry: { 
    main: `${__dirname}/src/app.js` 
}, 
output: { 
    path: __dirname, 
    filename: './public/bundle.js' 
}, 
module: { 
    loaders: [{ 
    loader: 'babel-loader', 
    query: { 
     presets: ['react', 'es2015', 'stage-2'] 
    }, 
    test: /\.jsx?$/, 
    exclude: /(node_modules|bower_components)/ 
    }] 
}, 
devtool: 'cheap-module-eval-source-map' 
}; 

package.json包括"heroku-postinstall": "webpack -p -w --config ./webpack.config.js --progress"

+0

你能更具體地說你想說什麼嗎?在heroku或webpack配置文件中是否更新反應文件。 – hmachahary

+0

應該在每個'heroku-postinstall'上重建(使用Weback)的React文件沒有被重建,因此 - 雖然我已經上傳了幾個從未版本的文件 - 原始版本仍然存在。 – Will

回答

0

我也遇到過類似的問題。 (只要確保你的WebPack配置文件是正確的,並沒有任何錯誤,同時運行在本地的WebPack版本)

我修改post-install腳本如下里面我package.json

"scripts": { 
    "clean": "rimraf public/bundle.*", 
    "build": "cross-env NODE_ENV=production webpack --config ./webpack.prod.config.js --progress --colors", 
    "postinstall": "npm run clean && npm run build", 
} 

的方式,當我推我對Heroku的"postinstall"變化被調用,並執行到任務陸續

  1. 乾淨的舊構建文件
  2. 生成新版本

以這種方式將舊文件從緩存中刪除。

但也有都是你需要安裝 rimraf

npm install --save rimraf 

您可以選擇任何其他的替代品「rimraf」以及一些依賴。