见过执行此类操作的代码,
if(process.env.NODE_ENV === 'development') {
//some DEVELOPMENT mode operation
}
在类似的行中,process.env.NODE_ENV === '生产'。
现在,当我们在 create-react-app 脚手架应用程序上执行 npm run build
时,
- process.env.NODE_ENV 字符串被替换(并变为
if('development' === 'development')
,哪种情况下死代码被删除?)或者, process
对象在运行时可用,当执行此代码时,该对象具有包含 NODE_ENV 属性的env
对象。
了解这个过程很重要,因为已经看到人们写下像 getENV
这样返回该值的函数。如果发生#1,这无助于删除死代码。
最佳答案
进程 #1 就是发生的进程。一切工作都归功于 webpack DefinePlugin
,它将 process.env“翻译”为正确的值。
现在,这里棘手的事情是:Webpack 在构建期间执行死代码消除(也称为 Tree shake),从而删除所有不需要的分支。
关于javascript - 'process.env.NODE_ENV' 替换为字符串或进程对象,可在运行时在 create-react-app 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51637189/