使用Node命令行工具导入/导出ES6

时间:2016-08-28 02:01:43

标签: node.js npm babeljs

我正在使用Node和ES6编写CLI。我选择使用Babel的require钩子,我的输入文件看起来像这样(index.js):

#!/usr/bin/env node
require('babel-core/register');
require('babel-polyfill');
require('./lib');

package.json的命令指向该文件:

"bin": {
  "atlas": "./index.js"
},

开发时一切都很完美,我可以在本地运行脚本。在NPM上发布并使用--global进行安装后,我收到有关ES6 import语句的以下错误:

~ atlas login
/usr/local/lib/node_modules/atlas-cli/lib/index.js:1
(function (exports, require, module, __filename, __dirname) { import program from 'commander';
                                                              ^^^^^^
SyntaxError: Unexpected token import
    at Object.exports.runInThisContext (vm.js:76:16)
    at Module._compile (module.js:528:28)
    at Module._extensions..js (module.js:565:10)
    at Object.require.extensions.(anonymous function) [as .js] (/usr/local/lib/node_modules/atlas-cli/node_modules/babel-register/lib/node.js:154:7)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)
    at Module.require (module.js:483:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/atlas-cli/index.js:10:1) 

由于符号链接或类似问题,看起来Babel没有加载.babelrc。如果我在安装目录(/usr/local/lib/node_modules/atlas-cli)中运行该命令,该命令就可以正常工作。

该软件包的完整代码可用here

0 个答案:

没有答案