'process.env.NODE_ENV' 替换为字符串或进程对象在运行时在 create-react-app 中可用
'process.env.NODE_ENV' replaced as a string or process object is available at runtime in create-react-app
看过执行此类操作的代码,
if(process.env.NODE_ENV === 'development') {
//some DEVELOPMENT mode operation
}
并且在类似的行中,process.env.NODE_ENV === 'production'。
现在,当我们在 create-react-app 脚手架应用程序上执行 npm run build
时,
- process.env.NODE_ENV 字符串被替换(并变为
if('development' === 'development')
,并且删除了哪种情况下的死代码?)或者,
process
对象在运行时可用,当执行此代码时,它具有此对象 env
对象包含 NODE_ENV 属性.
知道这个过程很重要,因为见过有人写下像getENV
这样的函数,其中returns这个值。如果 #1 发生,这无助于删除死代码。
过程 #1 是发生的过程。一切正常,因为 webpack DefinePlugin
,"translates" process.env 到正确的值。
现在,这里棘手的事情是:Webpack 在构建期间执行死代码消除(a.k.a Tree shaking),这会删除所有不需要的分支。
看过执行此类操作的代码,
if(process.env.NODE_ENV === 'development') {
//some DEVELOPMENT mode operation
}
并且在类似的行中,process.env.NODE_ENV === 'production'。
现在,当我们在 create-react-app 脚手架应用程序上执行 npm run build
时,
- process.env.NODE_ENV 字符串被替换(并变为
if('development' === 'development')
,并且删除了哪种情况下的死代码?)或者, process
对象在运行时可用,当执行此代码时,它具有此对象env
对象包含 NODE_ENV 属性.
知道这个过程很重要,因为见过有人写下像getENV
这样的函数,其中returns这个值。如果 #1 发生,这无助于删除死代码。
过程 #1 是发生的过程。一切正常,因为 webpack DefinePlugin
,"translates" process.env 到正确的值。
现在,这里棘手的事情是:Webpack 在构建期间执行死代码消除(a.k.a Tree shaking),这会删除所有不需要的分支。