【发布时间】:2016-03-27 08:33:12
【问题描述】:
我了解 React.js 的开发版本和产品版本之间存在差异,如果我使用脚本标签,我会简单地将缩小版本用于生产。
但是,当我使用 NPM 获取 React.js 并使用 Webpack 导入它时,它是如何工作的?对 React.js 源代码的粗略检查没有发现任何基于 NODE_ENV 的条件加载。
【问题讨论】:
标签: reactjs
我了解 React.js 的开发版本和产品版本之间存在差异,如果我使用脚本标签,我会简单地将缩小版本用于生产。
但是,当我使用 NPM 获取 React.js 并使用 Webpack 导入它时,它是如何工作的?对 React.js 源代码的粗略检查没有发现任何基于 NODE_ENV 的条件加载。
【问题讨论】:
标签: reactjs
那是因为源代码实际上并没有暴露 process.env.NODE_ENV ,我假设这是出于可读性的原因,并且环境变量被注入到发布版本中。以React@0.14.7 中的 Danger.js 为例,
生产构建 - https://npmcdn.com/react@0.14.7/lib/Danger.js
源代码 - https://github.com/facebook/react/blob/v0.14.7/src/renderers/dom/shared/Danger.js
您可以看到invariant() 调用和__DEV__ 条件表达式被替换。
【讨论】: