Node.js 如何在node CLI程序中使用babel?
我正在node中编写一个小型CLI工具,并希望使用ES6实现这一点 index.js看起来像:Node.js 如何在node CLI程序中使用babel?,node.js,command-line-interface,ecmascript-6,babeljs,Node.js,Command Line Interface,Ecmascript 6,Babeljs,我正在node中编写一个小型CLI工具,并希望使用ES6实现这一点 index.js看起来像: #!/usr/bin/env node require('babel/register'); module.exports = require('./app'); 我可以使用 $ node index.js --foo some --bar thing 在我的package.json中,我声明如下: "bin": { "my-tool": "./index.js" } 在安装和
#!/usr/bin/env node
require('babel/register');
module.exports = require('./app');
我可以使用
$ node index.js --foo some --bar thing
在我的package.json
中,我声明如下:
"bin": {
"my-tool": "./index.js"
}
在安装和执行此功能时,babel似乎没有像我所看到的那样工作:
/usr/lib/node_modules/my-tool/app.es6:1
(function (exports, require, module, __filename, __dirname) { import yargs fro
^^^^^^
SyntaxError: Unexpected reserved word
我在这里遗漏了什么?require钩子更多的是用于本地开发,而不是用于生产。理想情况下,您应该在分发包之前进行预编译。你遇到了麻烦 您需要显式地告诉寄存器挂钩不要忽略您的应用程序
require('babel/register')({
ignore: /node_modules\/(?!my-tool)/
});
require钩子更多的是用于本地开发,而不是用于生产。理想情况下,您应该在分发包之前进行预编译。你遇到了麻烦 您需要显式地告诉寄存器挂钩不要忽略您的应用程序
require('babel/register')({
ignore: /node_modules\/(?!my-tool)/
});
require钩子更多的是用于本地开发,而不是用于生产。理想情况下,您应该在分发包之前进行预编译。你遇到了麻烦 您需要显式地告诉寄存器挂钩不要忽略您的应用程序
require('babel/register')({
ignore: /node_modules\/(?!my-tool)/
});
require钩子更多的是用于本地开发,而不是用于生产。理想情况下,您应该在分发包之前进行预编译。你遇到了麻烦 您需要显式地告诉寄存器挂钩不要忽略您的应用程序
require('babel/register')({
ignore: /node_modules\/(?!my-tool)/
});
不知道为什么会发生这种情况(我可以复制)。作为一个快速解决方案,也许您可以使用
#/usr/bin/env babel node
?我不认为babel的即时编译可以与模块语法一起工作。然后我根本不明白它做了什么:当通过节点索引.js
(工作)和我的工具
(不工作)调用时,有什么不同?不确定为什么会发生这种情况(我可以复制)。作为一个快速解决方案,也许您可以使用#/usr/bin/env babel node
?我不认为babel的即时编译可以与模块语法一起工作。然后我根本不明白它做了什么:当通过节点索引.js
(工作)和我的工具
(不工作)调用时,有什么不同?不确定为什么会发生这种情况(我可以复制)。作为一个快速解决方案,也许您可以使用#/usr/bin/env babel node
?我不认为babel的即时编译可以与模块语法一起工作。然后我根本不明白它做了什么:当通过节点索引.js
(工作)和我的工具
(不工作)调用时,有什么不同?不确定为什么会发生这种情况(我可以复制)。作为一个快速解决方案,也许您可以使用#/usr/bin/env babel node
?我不认为babel的即时编译可以与模块语法一起工作。然后我根本不明白它做了什么:当通过节点索引.js调用时(工作)和我的工具
(不工作)有什么区别?