我正在使用 Babel
ES5
ES6
Webpack
有一些验证用于减少我在编码时犯的错误。
class Logger {
/**
* @param {LogModel} info
* {LogTypes} type
* {String} message
* {Date} date
*/
static log(info) {
if(info instanceof LogModel)
throw new Error("not a instance of LogModel");
notify(info);
}
}
在 log
函数中,我验证参数是否是 LogModel
类的实例。这只是为了防止错误。我不希望 if 条件出现在生产中,因为太多 if 条件会减慢应用程序的速度。是否可以生成带验证的开发版本和不带 Babel
和 Webpack
验证的生产版本?
原文由 s1n7ax 发布,翻译遵循 CC BY-SA 4.0 许可协议
看来其他答案已经过时了。使用 webpack 4,您可以在 webpack 配置中设置
mode: 'production'
。在您的代码中,检查开发模式如下:
当 webpack 使用
mode: 'production'
创建一个 bundle 时,这些 if 子句中的所有代码,连同 if 子句本身,将自动从 bundle 中删除。不需要显式使用 define 插件(它由 webpack “在幕后”使用),也没有必要使用其他答案中提到的类似
webpack-unassert-loader
或webpack-strip-block
之类的东西.查看我制作的这个小演示回购来尝试这个: https ://github.com/pahund/webpack-devprod-experiment