bit*_*shr 9 javascript node.js ecmascript-harmony
如何运行全局安装的节点模块,以--harmony模式方式公开shell脚本?
您可以创建"node-harnomy"可执行文件:
在/ usr/local/bin目录/节点和谐
#!/bin/bash
node --harmony "$@"
Run Code Online (Sandbox Code Playgroud)
和谐,cmd.js
#!/usr/bin/env node-harmony
function* foo() {
}
Run Code Online (Sandbox Code Playgroud)
TL;DR:只需使用 Node 5+,大多数 ES6 功能将立即可用。
这更像是对2015年答案的修正。
原因是 Node.js 和 io.js 已经融合,项目现在变得更加强大,有大量更新,同时保持长期支持 (LTS) 并支持大量 ES6 功能(除了 io.js 的功能之外)。 js 也支持。
Node.js 5.0.0+ 中提供的显着功能:
我们现在可以使用io.js。它可靠、快速且符合最新的稳定 ES6 规范。
根据您想要的 ES6 功能,您可以在不使用任何标志的情况下使用它。从他们的网站:
从 v8 3.31.74.1 开始,块作用域声明是有意通过对严格模式代码的不合规限制来实现的。开发人员应该意识到,随着 v8 继续符合 ES6 规范,这种情况将会发生变化。
用你的东西生成第二个 Node 进程怎么样?
#!/usr/bin/env node
var spawn = require("child_process").spawn;
var child = spawn(process.execPath, [ "--harmony", "yourscript.js" ], {
cwd: __dirname
});
child.stdout.on("data", function( data ) {
console.log(data);
});
child.stderr.on("data", function( data ) {
console.error(data);
});
Run Code Online (Sandbox Code Playgroud)
编辑:我相信 process.execPath在这种情况下返回节点路径,而不是全局脚本路径。
但是,您始终可以将其更改为node直接,但这可能会破坏路径中没有节点的安装。