H5W3
当前位置:H5W3 > JavaScript > 正文

【JS】为什么Webpack生成JavaScript代码要引入eval模式

最近在看Webpack的生成的JavaScript,有一个疑问想不明白:为什么Webpack要提供eval的模式,将模块的generated code用eval来包裹?

这里的讨论不仅限于devtooleval,还包括eval-source-map, cheap-eval-source-map等各种包含了eval的衍生组合。如果说eval的好处是build速度快,因为它不生成source map,那类似于eval-source-map这样的呢?

所以我的疑问并不在于source map,而是eval本身。既然它如此被诟病,为什么Webpack还是要引入这样一种代码生成机制,它究竟有什么好处?

回答

goto也被诟病,但你仍然可以在C/C++中使用goto。

真正被诟病的不是eval,而且eval的滥用。如果你确认拿到的代码是你自己的(或任何你信任的),用eval是完全可以接受的,而且可以享受到速度快的好处。

赞同代码宇宙的答案,js还有一个不建议使用的关键词是with,但是vue源码中模板渲染那里就有用with,这样确实让代码看起来更简单,更清晰。eval也是同理,避免滥用,但是你可以确定的地方使用会有更方便的体验。

本文地址:H5W3 » 【JS】为什么Webpack生成JavaScript代码要引入eval模式

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址