开始使用ReactJS的prop validation feature,正如文档所说,出于性能原因,它只能在"开发模式"下工作.
React似乎在验证我注释过的特定组件的属性,但我不记得明确地打开了"开发模式".
我试图寻找如何触发/切换开发模式,但没有任何运气.
开始使用ReactJS的prop validation feature,正如文档所说,出于性能原因,它只能在"开发模式"下工作.
React似乎在验证我注释过的特定组件的属性,但我不记得明确地打开了"开发模式".
我试图寻找如何触发/切换开发模式,但没有任何运气.
另一个答案假设您使用的是react的外部预构建文件,虽然正确,但大多数人不会将react作为一个包来使用.此外,在这一点上,大多数React库和包also都依赖于相同的约定,在生产过程中关闭开发时间助手.只需使用缩小的react,就可以将所有潜在的优化都留在桌面上.
最终,神奇之处在于在整个代码库中嵌入process.env.NODE_ENV
个引用;这些功能就像一个功能切换.
if (process.env.NODE_ENV !== "production")
// do propType checks
以上是最常见的模式,其他库也遵循这种模式.所以要"禁用"这些判断,我们需要将NODE_ENV
切换到"production"
禁用"开发模式"的正确方法是通过您 Select 的绑定器.
在你的网页配置中使用DefinePlugin
,如下所示:
new 网页包.DefinePlugin({
"process.env.NODE_ENV": JSON.stringify("production")
})
使用Envify转换并使用NODE_ENV=production
(Windows上为"set NODE_ENV=production"
)运行browserify生成步骤
这将生成输出包,其中process.env.NODE_ENV
的所有实例都替换为字符串literal:"production"
缩小转换后的代码时,可以利用"死代码消除".DCE是指minifier足够聪明,能够意识到:"production" !== "production"
是always false,因此只需删除if块中的任何代码即可节省字节.