为什么Webpack生成JavaScript代码要引入eval模式
最近在看Webpack的生成的JavaScript,有一个疑问想不明白:为什么Webpack要提供eval
的模式,将模块的generated code用eval
来包裹?
这里的讨论不仅限于devtool
是eval
,还包括eval-source-map
, cheap-eval-source-map
等各种包含了eval
的衍生组合。如果说eval
的好处是build速度快,因为它不生成source map,那类似于eval-source-map
这样的呢?
所以我的疑问并不在于source map,而是eval
本身。既然它如此被诟病,为什么Webpack还是要引入这样一种代码生成机制,它究竟有什么好处?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
goto也被诟病,但你仍然可以在C/C++中使用goto。
真正被诟病的不是eval,而且eval的滥用。如果你确认拿到的代码是你自己的(或任何你信任的),用eval是完全可以接受的,而且可以享受到速度快的好处。
赞同代码宇宙的答案,js还有一个不建议使用的关键词是with,但是vue源码中模板渲染那里就有用with,这样确实让代码看起来更简单,更清晰。eval也是同理,避免滥用,但是你可以确定的地方使用会有更方便的体验。