节点包中的“require”挂钩
`require` hooks in a node package
我正在构建一个包含一些 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 钩子才能正常运行。
这使得 index.js
在这个库中使用时可以正常工作(node index.js
工作,以及测试等)。但是,一旦我将该项目用作另一个项目的依赖项,require 钩子就无法工作,并且由于 es6 语法而出现语法错误。
即使项目是
,我怎样才能让注册的钩子工作?
这可能是一些与 require()
缓存相关的问题,但无论原因如何,您不应该在所需的库中使用 BABEL/REGISTER .
Not suitable for libraries
The require hook automatically hooks itself into all node requires. This will pollute the global scope and introduce conflicts. Because of this it's not suitable for libraries, if however you're writing an application then it's completely fine to use.
我正在构建一个包含一些 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 require 钩子才能正常运行。
这使得 index.js
在这个库中使用时可以正常工作(node index.js
工作,以及测试等)。但是,一旦我将该项目用作另一个项目的依赖项,require 钩子就无法工作,并且由于 es6 语法而出现语法错误。
即使项目是
,我怎样才能让注册的钩子工作?这可能是一些与 require()
缓存相关的问题,但无论原因如何,您不应该在所需的库中使用 BABEL/REGISTER .
Not suitable for libraries
The require hook automatically hooks itself into all node requires. This will pollute the global scope and introduce conflicts. Because of this it's not suitable for libraries, if however you're writing an application then it's completely fine to use.