Zawsze uruchamiaj węzeł z flagą --harmony

15

Zawsze chcę uruchomić Node.JS z --harmonyflagą. Czy istnieje sposób, aby łatwo włączyć tę flagę domyślnie?

(Uwaga: działam w systemie Windows, więc mam dostęp tylko do Cygwin lub Mingw jako powłoki).

Randomblue
źródło

Odpowiedzi:

14

Jeśli mówisz o uruchomieniu interaktywnym, możesz użyć bash alias. Umieść to w ~/.bashrc:

alias node="node --harmony"

(Poniżej: zauważ, że kiedy mówię „wykonywalny”, nie mam na myśli tylko plików binarnych lub „plików .exe”. „Pliki wykonywalne” obejmują wszystko, co można wykonać bez jawnego wywoływania interpretera, w tym skrypty z shebangiem. )

Jeśli chcesz uruchomić plik wykonywalny, np. W innym skrypcie, możesz utworzyć skrypt powłoki, który uruchamia cel z dodatkową flagą:

Utwórz a nodeHarmonyi umieść go w ścieżce wyszukiwania, np . /usr/local/bin:

#!/bin/sh

node --harmony "$@"

Więc chmod a+xto.

Następnie wykonaj, nodeHarmonygdy chcesz dołączyć tę flagę. Jeśli chcesz zastąpić nodeplik wykonywalny, prawdopodobnie możesz zmienić nazwę nodena inną (np. node_original), Nazwać skrypt nodei użyć go node_originalw skrypcie.

Można również utworzyć równoważny skrypt wsadowy systemu Windows, który działałby poza Cygwin / MinGW:

@echo off

node --harmony %*

Zachowałoby się to podobnie, ale może wykazywać dziwne efekty w przypadku niektórych kombinacji argumentów, ponieważ lista byłaby analizowana dwukrotnie - raz podczas wykonywania skryptu wsadowego, a raz w skrypcie podczas wykonywania node. Kilka obejść tutaj .

Kok
źródło
4

Jeśli chcesz ponownie skompilować plik node.js, w artykule Jak uzyskać harmonię w pliku node.js jest napisane:

Po uzyskaniu kodu źródłowego otwórz deps/v8/src/flag-definitions.hi poszukaj wiersza 115. Zmień flagę z false na true:

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

Następnie skompiluj Węzeł:

./configure && make && make install
harrymc
źródło
0

Możesz edytować plik node.js i:

  1. Wyszukaj zmienną, która sprawdza jej ustawienie dla „--harmonia” lub „harmonia”, coś w stylu:

    if (variable_name == 'harmony') ...
    
  2. Ustaw tę zmienną wcześniej w kodzie:

    var this_variable_name = 'harmony';
    
pbies
źródło
0

Dlaczego nie skonfigurujesz pliku package.json za pomocą polecenia skryptów ?

Na przykład dodaj do package.json:

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

Następnie uruchom w cmd (w katalogu projektu):

npm start

Noam Manos
źródło