我正在构建一个包含es6代码的节点包,所以我想这样做
带有babel
的热负载es6代码。
在我的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 require hook才能正常运行。
这使得index.js
在此库中使用时可以正常工作(node index.js
可以正常工作,以及测试等)。但是一旦我将项目用作另一个项目中的依赖项,require钩子就无法工作,因为es6语法而导致语法错误。
即使项目是
,如何使注册的钩子工作答案 0 :(得分:0)
这可能是与require()
缓存相关的一些问题,但无论原因如何,您都不应该使用BABEL /在一个必需的图书馆中注册。
不适合图书馆
require钩子自动将自身挂钩到所有节点需要。这将污染全球范围并引入冲突。因此,它不适合图书馆,但如果您正在编写应用程序,那么使用它就完全没问题。