首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webpack -优化-最小化vs -p

webpack -优化-最小化vs -p
EN

Stack Overflow用户
提问于 2018-05-06 01:52:43
回答 1查看 1.1K关注 0票数 3

我正在做服务器端渲染在我的反应应用程序。在应用程序中,我有一些图片,所以我在webpack-config中为它们提供了loder。

代码语言:javascript
复制
      {
        test: /\.(gif|png|jpg)$/,
        loader: 'file-loader?name=assets/img/[name].[hash].[ext]',
      },

如果我用这种方式运行我的代码

代码语言:javascript
复制
cross-env NODE_ENV=production webpack --optimize-minimize --config webpack.config.prod.js,

我犯了个错误

代码语言:javascript
复制
Warning: Prop `src` did not match. Server: "assets/img/profilna.1b1788096b2a10afe508dff672e50072.jpg" Client: "/assets/img/profilna.1b1788096b2a10afe508dff672e50072.jpg"

但如果我像这样运行

代码语言:javascript
复制
cross-env NODE_ENV=production webpack --p --config webpack.config.prod.js,

一切都很好,功能也很完美,就像我想要的。

为什么会这样呢?

正如我所读到的,-p相当于

webpack --optimize-minimize --define process.env.NODE_ENV="'production'"

因为我已经在设置生产环境,所以我不需要--定义

EN

回答 1

Stack Overflow用户

发布于 2018-05-06 06:55:48

代码语言:javascript
复制
cross-env NODE_ENV=production

这样,您就可以设置Node process.env.NODE_ENV,而不是在应用程序中“传递”或使用--同时绑定。基本上,您需要为应用程序创建全局变量,并将NODE_ENV设置为webpack所需要的。这就是..。

--define process.env.NODE_ENV="'production'"

...does。它将使用Webpack DefinePlugin来设置在捆绑应用程序时使用的全局process.env.NODE_ENV

我知道这听起来有点不清楚,我自己也很难理解,但希望文档能澄清这一点。

从技术上讲,NODE_ENV是Node.js在运行脚本中公开的一个系统环境变量。它被约定用来通过服务器工具、构建脚本和客户端库来确定dev-vs-prod行为。与预期相反,process.env.NODE_ENV没有在构建脚本中设置为“生产”

有关示例,请参见“指定环境”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50195596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档