And*_*aro 5 javascript webpack babeljs babel-loader
我试图弄清楚如何从编译过程中提取一些信息。babel
更具体地说,当我运行时babel(无论是否使用Webpack的babel-loader,测试框架的转换器,Babel的CLI等),我都需要为每个编译文件提取一些信息。喜欢:
工作正常,但仅提供Webpack的加载程序运行时间。没有有关单个编译文件的信息。
我考虑过编写一个Webpack插件以按此处所述插入编译过程,但是我找不到合适的钩子来识别正在处理的文件babel。
我猜@kidroca指出了正确的方向。更具体地说,我了解Babel的wrapPluginVisitorMethod选择是进入Babel编译过程的关键。
见babel-minify的定时插件。
相关主题:
我最终尝试将解决方案包装到称为babel-timing的工具中。
您可以使用@babel/coreandbabel.transformSync(code)将返回
抽象语法树(AST) 信息以及一些其他数据。并且你也可以添加一些逻辑来衡量这个方法的性能
我已经设置了一个最小的 repo 并自己玩了一下:https : //github.com/kidroca/babel-meta
基本上你可以运行npm run analyze-file ./es6-src/es6-module.js或npm run analyze-dir ./es6-src/es6-module.js检查结果
这将返回:
{
"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 */
}
Run Code Online (Sandbox Code Playgroud)
您可以修改analyze.js文件以过滤掉您需要的信息
您可以修改.babelrc文件以控制转换和添加/删除插件
| 归档时间: |
|
| 查看次数: |
204 次 |
| 最近记录: |