2015-12-10 6 views
1

Я написал сценарий NodeJs с использованием функций ES6 (параметры по умолчанию и деструктурирующие), поэтому я ставлю следующий притон:Невозможно включить несколько флагов гармонии nodejs

#!/bin/node --harmony_destructuring --harmony_default_parameters 

Но узел говорит мне:

/bin/node: bad option: --harmony_destructuring --harmony_default_parameters 

Оба эти параметра перечислены в node --v8-options | grep "in progress", поэтому они должны быть действительными, но, возможно, мой синтаксис неверен. Я пробовал различные syntaxs:

/bin/node: bad option: --harmony_destructuring=true --harmony_default_parameters=true 
/bin/node: bad option: --harmony_destructuring true --harmony_default_parameters true 

не повезло.

ответ

1

Хотя я нашел this fascinating answer для python, у меня нет чего-то умного для javascript. Я думаю, вам понадобятся два отдельных файла: один небольшой скрипт-оболочка, который заставит аргументы, необходимые для узла, и отдельный файл для вашего javascript.

#!/bin/sh 
exec node --harmony_destructuring=true --harmony_default_parameters=true my-script.js "[email protected]" 
+0

Хорошо, это то, что я предполагал, shebang имеет другую обработку параметров. К сожалению, даже с env он не работает: '/ usr/bin/env: node --harmony_destructuring --harmony_default_parameters: Нет такого файла или каталога', тогда как та же самая команда в моей оболочке работает – jolivier

+0

Это означает, что ваш PATH не включает'/bin', что очень необычно. Попробуйте '#!/Usr/bin/env/bin/node --harmony_destructuring --harmony_default_parameters' –

+0

Действительно, мой PATH не содержит'/bin' (у меня есть archlinux, двоичные файлы находятся в/usr/bin). Но ваше предложение тоже не работает, я думаю, что env не решает проблему синтаксического анализа аргументов и пытается выполнить файл 'node option1 option2', который не существует. – jolivier