首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >衡量Babel编译性能(每个文件或模块)

衡量Babel编译性能(每个文件或模块)
EN

Stack Overflow用户
提问于 2019-04-05 14:27:52
回答 1查看 1.1K关注 0票数 6

我正在研究如何从babel 编译过程中提取一些信息

更具体地说,当我运行babel (不管是否使用Webpack的babel-loader、测试框架的变压器巴贝尔氏CLI等)时,我需要为提取一些信息,用于每个编译的文件E 216。比如:

  • 文件路径
  • 编译所需时间
  • 还有其他的元数据吗?

到目前为止我尝试过的

Webpack测速插件(链接)

工作正常,但它只提供Webpack的装载机运行时间。没有关于单个编译文件的信息。

连接Webpack的编译器/编译实例

我认为写Webpack插件可以像这里描述的那样与编译过程挂钩,但是我找不到正确的钩子来识别babel正在处理的文件。

更新

我想“开洛卡”指出了正确的方向。更具体地说,我理解Babel的选项是链接到Babel编译过程的关键。

babel-minify定时插件

相关线程:

更新28/04/18

最后,我尝试将解决方案封装到一个我称为巴贝尔计时的工具中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-14 01:17:10

您可以使用@babel/corebabel.transformSync(code),它们将返回抽象句法树 (AST)信息以及其他一些数据。还可以添加一些逻辑来衡量该方法的性能。

我设置了一个最小的回购程序,并自己玩了一下:https://github.com/kidroca/babel-meta

基本上您可以运行npm run analyze-file ./es6-src/es6-module.jsnpm run analyze-dir ./es6-src/es6-module.js并签出结果。

这将返回:

代码语言:javascript
运行
复制
{
  "filename": "/full/path/to/src/file.js",
  "cwd": "current/dir",
  "ast": "ast information json - lines, comments, and other info",
  "executionTime": "execution time in ms",
  /* a lot of other info */
}

您可以修改analyze.js文件以筛选出所需的信息。

您可以修改.babelrc文件以控制转换和添加/删除插件。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55537633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档