До сих пор я собирал свой пакет веб-пакетов вот так webpack -p
и развертывал его в Heroku.Все отлично работало.Я хотел иметь немного больше контроля, поэтому вместо использования -p
я использовал UglifyJsPlugin и DefinePlugin в моей конфигурации webpack, так как это именно то, что делает -p.Это где проблема началась.
Если я использую -p
без DefinePlugin, вот так выглядит мой файл сборки в конце.
var PORT = process.env.NGINX_PORT ? '/tmp/nginx.socket' : process.env.PORT;
process.env.PORT поддерживается, и развертывание в Heroku работает.
Если я использую DefinePlugin
var PORT = Object({"NODE_ENV":"production"}).NGINX_PORT ? '/tmp/nginx.socket' : Object({"NODE_ENV":"production"}).PORT;
Мой process.env.PORT больше не существует, и развертывание в Heroku завершается неудачей.
Как я могу использовать DefinePlugin, но при этом сохраню process.env.PORT не поврежден?
Это моя конфигурация веб-пакета
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
},
}),
и мой стартовый скрипт
"start": "cross-env NODE_ENV=production node ./src/build/bundle.js"