首页 > 解决方案 > webpack 不会投入生产。默认为开发

问题描述

我迷路了。我一直在关注 webpack 上的 Udemy Webpack 4 教程,但我坚持为不同的模式设置不同的配置。

我可以从我的生产配置构建就好了,但是在运行节点服务器时,它没有设置为生产。

我有我的 main.js 写这个:

console.log(`Environment is: ${process.env.NODE_ENV`}

我只在发展中看到它。

这是我的 package.json 运行生产的脚本:我运行npm run build然后npm run prod

  "scripts": {
    "build:dev": "webpack --config=config/webpack.dev.js",
    "build": "webpack --config=config/webpack.prod.js",
    "dev": "nodemon --inspect --watch config --watch src/server 
     src/server/main.js",
    "prod": "cross-env NODE_ENV=production node src/server/main.js"
  },

有人提到我需要在插件部分的 webpack prod 配置中定义 NODE_ENV 。这是我的方式:

    new webpack.DefinePlugin({
        'process.env': {
            NODE_ENV:'"production"'
        }
    }),

我以不同的方式尝试过: 'process.env': {'NODE_ENV': JSON.Stringify("production")} 和其他几种方式,但我没有运气。

这是我的存储库,可以查看我的完整配置: https ://github.com/PepperAddict/webpack-express

我将不胜感激任何帮助甚至建议以更好的方式进行设置。先感谢您!

标签: node.jswebpackproductionwebpack-4

解决方案


下面是我使用 webpack 4 的配置

"prod": "webpack -p --mode=production --config webpack.prod.js",
"start": "webpack --mode=development --config webpack.dev.js",

如果你想设置 NODE_ENV 你可以这样做

"prod": "SET NODE_ENV=production& webpack -p --mode=production",

希望有所帮助


推荐阅读