始终使用--harmony标志运行节点


15

我一直想用该--harmony标志运行Node.JS。有没有一种方法可以轻松地默认打开此标志?

(注意:我在Windows上运行,因此只能作为外壳访问Cygwin或Mingw。)

Answers:


14

如果您正在谈论交互式运行,则可以使用bash alias。把它放在你的~/.bashrc

alias node="node --harmony"

(对于以下内容:请注意,当我说“可执行文件”时,我不仅指二进制文件或“ .exe文件”。“可执行文件”包括可以在不显式调用解释器的情况下执行的任何内容,其中包括带有shebang的脚本。 )

如果要运行可执行文件(例如在另一个脚本中),则可以创建一个shell脚本,该脚本使用额外的标志启动目标:

创建一个nodeHarmony并将其放在您的搜索路径中,例如/usr/local/bin

#!/bin/sh

node --harmony "$@"

然后chmod a+x

然后,nodeHarmony只要您希望添加该标志,就执行。如果要替换node可执行文件,则可以重命名node为其他node_original名称(例如),命名脚本node,然后node_original在脚本内使用。

您还可以创建等效的Windows批处理脚本,该脚本可在Cygwin / MinGW之外运行:

@echo off

node --harmony %*

这样做的行为类似,但是在某些参数组合下可能会产生奇怪的效果,因为列表将被解析两次-执行批处理脚本时一次,执行时在脚本内一次node这里有一些解决方法。


4

如果准备好重新编译node.js,则文章 如何在node.js中获得和谐表示:

获得源代码后,打开 deps/v8/src/flag-definitions.h并查找第115行。将标志从false更改为true:

DEFINE_bool(harmony, true, "enable all harmony features")

然后编译Node:

./configure && make && make install


0

您可以编辑node.js文件,并:

  1. 搜索一个检查其设置是否为“ --harmony”或“ harmony”的变量,例如:

    if (variable_name == 'harmony') ...
    
  2. 在代码前面设置此变量:

    var this_variable_name = 'harmony';
    

0

为什么不使用脚本命令配置package.json

例如,添加到package.json:

  "scripts": {
    "start": "node --harmony server.js"
  }

然后在cmd中运行(在项目目录中):

npm开始

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.