节点包中的“需要”钩子
`require` hooks in a node package
>我正在构建一个包含一些 es6 代码的节点包,所以我想热加载 ES6 代码与 babel
.
在我的index.js
中,我说:
require('babel/register'); // register es6 transpolar for all following requires
module.exports = {
foo: require('lib/foo')
, bar: require('lib/bar')
}
lib/foo
包含 es6 代码,因此需要 babel 需要钩子才能正常运行。
这使得index.js
在此库中使用时正常工作(node index.js
工作,以及测试等)。但是一旦我将该项目用作另一个项目中的依赖项,require钩子就无法工作,并且由于es6语法而出现语法错误。
项目是
这可能是与require()
缓存相关的一些问题,但无论原因如何,您都不应该在所需的库中使用 BABEL/REGISTER。
来自 Babel 文档:
不适合图书馆
require钩子会自动将自身挂接到所有节点需求中。这将污染全球范围并引入冲突。因此,它不适合库,但是如果您正在编写应用程序,那么使用起来完全没问题。
相关文章:
- 需要帮助设置json数组
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 我需要从php调用javascript或jquery
- JQuery需要帮助理解(i,el)
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 需要垫片设置-jquery.flot/jquery.flot.selection
- 需要帮助谷歌地图方向面板在FancyBox中显示
- iframe正在添加标签,需要删除它们
- onclick函数需要双击,因为类分配延迟
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 我需要为我的朋友在这个项目上提供帮助
- 需要使用谷歌应用程序脚本列出谷歌域下的所有网站
- Wordpress插件根据需要加载js和css
- 另一个if(!$scope.$$phase)$scope$apply()szenario-需要帮助才能通关
- 使用优化器在慢速连接上加载main.js时需要js超时
- AngularJS-需要在index.html页面中访问来自服务的数据
- 从MySQL数据库中获取输入数据需要两次页面刷新
- 如何在不需要单击按钮的情况下获取选项的值
- 节点包中的“需要”钩子