Babel-register 在包中工作,但在 require-ing 包时不工作

Babel-register working in the package but not when require-ing the package

我已经在我的包中设置了 babel-register(已安装 "babel-preset-env": "1.7.0", "babel-register": "6.26.0")

index.js

require('babel-register');

// Contains a bunch of `import * ` stuff.
const lib = require('./lib.js');

.babelrc

    {
    "presets": [
        "env"
    ]
}

这在本地工作得很好,但是当我发布我的包并尝试使用它时,我仍然得到:

SyntaxError: Unexpected token import
    at new Script (vm.js:51:7)
    at createScript (vm.js:136:10)
    at Object.runInThisContext (vm.js:197:10)
    at Module._compile (internal/modules/cjs/loader.js:618:28)

babel-register 是一个全局单例模块,这意味着一次只能使用它的一个实例。鉴于此,预计只有正在开发的顶级应用程序才会使用它。为了与这些目标保持一致,babel-register 自动忽略 node_modules 中的所有文件,因为假设 node_modules 在发布之前已经编译为可以在用户的​​节点版本上工作。

安装时您的逻辑失败的原因是 node_modules 的自动排除,因为您的模块已安装到 node_modules

即使情况并非如此,由于我上面提到的全局单例行为,您在这里的使用也会遇到问题。如果 you 加载 babel-register 在这里,它会自动尝试编译用户使用你的库的代码,他们没有要求,没有期望,并且可能会失败.

您应该在发布之前编译您的库代码。