Babel编译JS无法导入相对path

我在ES2015中编写了一个npm包,并且使用Babel 6进行编译。ES2015源代码位于/src ,分为/src/core/src/commands等模块。 因为它是一个CLI工具,所以入口点在/src/bin/app.js 。 如果我运行babel-node src/bin/app.js它按预期工作。

理想情况下,我想全局安装这个工具(像grunt-cli ),所以我用babel src -o /lib/app.js将整个包传递给一个有效的JS(ES5)文件。 但是,如果我尝试运行该文件,则会尝试从相对path请求模块时引发错误,并且因为它们全部合并到app.js所以无法find这些模块。 错误是:

 $ node_modules/babel-cli/bin/babel-node.js lib/app module.js:328 throw err; ^ Error: Cannot find module '../commands/index' at Function.Module._resolveFilename (module.js:326:15) at Function.Module._load (module.js:277:25) at Module.require (module.js:354:17) at require (internal/module.js:12:17) at Object.<anonymous> (/usr/local/lib/node_modules/app/lib/app.js:19:14) at Module._compile (module.js:398:26) at Module._extensions..js (module.js:405:10) at Object.require.extensions.(anonymous function) [as .js] (/Users/me/dev/app/node_modules/babel-register/lib/node.js:138:7) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) 

我的.babelrc很简单:

 { "presets": ["es2015"] } 

如果这个工作,或者我需要更多的configuration巴别? 备份计划是简单地将整个/src文件夹传输到/lib并发布所有内容,但单个文件会更好。

原来Babel目前不支持 。 它只是将文件连接在一起,因此相对path导入将不起作用。

解决scheme是使用带有Babel插件的 Rollup ,而不是使用Babelpathparsing插件 。 我创build了一个简单的项目来testing和演示设置。