报错前process.env.NODE_ENV的判断
来源:2-4 render

小郎Lie
2018-11-24
Vue的很多报错都进行了process.env.NODE_ENV !== 'production’的判断,只有在生产环境才会往控制台打日志
if (!(vnode instanceof VNode)) {
if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {
warn('...') // 省略代码
}
vnode = createEmptyVNode()
}
为什么要每次调用warn前判断而不是统一在warn方法里面判断呢?是为了性能让生产环境少一些逻辑吗?
可是有时候生产环境控制台有日志能更方便排查问题。如果能给用户开一个配置控制生产环境控制台是否打日志岂不是更好。。
写回答
1回答
-
process.env.NODE_ENV !== 'production' 在生产环境会编译成 false,然后 if(false) 在压缩代码的时候这部分代码就没了,为了减少运行时的 js boudle。
一般来说,警告类型的错误都应该在开发阶段发现问题,而不应该放到生产环境中解决。212019-05-07
相似问题