从使用ReactJS的prop validation feature开始,正如文档所说,出于性能原因,它只能在“开发模式”下工作。
React似乎正在验证我注释的特定组件的属性,但我不记得显式打开“开发模式”。
我尝试搜索如何触发/切换开发模式,但是没有任何运气。
最佳答案
另一个答案是假设您使用的是来自React的外部预构建文件,并且正确地说,这不是大多数人打算使用或作为包使用React的方式。而且,在这一点上,大多数每个React库和包都还依赖相同的约定来在生产期间关闭开发人员时间助手。仅使用缩小的反应,所有这些潜在的优化也会留在桌面上。
最终,魔术归结为React在整个代码库中嵌入对process.env.NODE_ENV
的引用;这些就像功能切换一样。
if (process.env.NODE_ENV !== "production")
// do propType checks
上面是最常见的模式,其他库也遵循它。因此,要“禁用”这些检查,我们需要将NODE_ENV
切换为"production"
禁用“开发模式”的正确方法是通过选择的 bundle 程序。网络包
像这样在您的webpack配置中使用
DefinePlugin
:new webpack.DefinePlugin({
"process.env.NODE_ENV": JSON.stringify("production")
})
浏览器使用Envify转换,并使用
NODE_ENV=production
(在Windows上为"set NODE_ENV=production"
)运行browserify构建步骤结果
这将产生输出 bundle ,其中所有
process.env.NODE_ENV
实例都替换为字符串文字:"production"
奖金最小化转换后的代码时,您可以利用“消除死代码”的优势。 DCE是Minifier足够聪明地认识到的:
"production" !== "production"
始终为false,因此只要删除if块中的任何代码即可为您节省字节。关于reactjs - 如何打开/关闭ReactJS 'development mode'?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22118915/