javascript - 处理完所有文件后运行的 Babel 钩子(Hook)?

标签 javascript babeljs

在 Babel 插件中,有一个 post 钩子(Hook),它在处理单个 JS 文件后运行。但是,我想在处理完所有 JS 文件后运行一些代码。这可能吗?

目前,我刚刚添加了一个新插件,该插件在第一个插件之后运行,但如果它们是一个插件,它会更干净。

最佳答案

简短的回答是 Babel 不提供这样的钩子(Hook),因为 Babel 的核心转换系统一次运行一个文件。整个API是:

babel.transform("var foo; /* some code */", { filename: "foo.js" });

因此它无法注册在处理文件后运行的内容。

更长的答案是,如果您专门使用 Webpack,则可以将 Babel 与 Webpack 插件结合使用,从每个单独的文件中收集元数据,然后对所有这些元数据执行某些操作,但这是一个Webpack/babel-loader 特定的功能。 react-intl-webpack-plugin 就是此类 Webpack 插件的一个示例。 ,与 babel-plugin-react-intl 配对.

关于javascript - 处理完所有文件后运行的 Babel 钩子(Hook)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55912515/

相关文章:

gulp - gulp 服务错误 : Requiring external module babel-register

javascript - 从 Sequelize 返回值

javascript - 如何在 Three.js 场景中平滑多边形?

javascript - 事件处理程序会发生什么?

javascript - 使用 window.open() 并为新窗口中的 View 传递 knockoutjs ViewModel

reactjs - 如何在浏览器 Babel 中包含 webpack?

javascript - 如何使用 Webpack 将所有导入的依赖项打包到一个文件中?

javascript - Babel 'protoToAssign' 变压器和 ES6 类继承

javascript - 使用 Babel 在线将 ES6 编译成 ES5

javascript - 如何使用 Angular $location 通过动态更改其键值参数来设置我的新 url 位置?