^ Символ в аргументах сценария узла - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть скрипт узла, который получает следующий аргумент: ^PPP.

Я вызываю скрипт следующим образом: npm run scriptName ^PPP.

Однако внутри скрипта, если я это сделаюconsole.log(process.argv), вывод показывает мой аргумент как PPP.

Я пытался экранировать символ как npm run scriptName \^PPP и npm run scriptName "^PPP", но безрезультатно.

Пожалуйста, помогите, как я могуполучить исходную строку из аргументов.

PowerShell для запуска команды и версия узла v10.16.2

1 Ответ

0 голосов
/ 08 ноября 2019

Это зависит от вашего терминала.

Я сделал простой скрипт с именем args.js для

console.log(process.argv);

Используя git bash в Windows или WSL (Ubuntu), вызвав

$node args.js ^PPPP

Выходы

['node / path', 'path / to / args.js', '^ PPPP']


Использование терминала Windows cmd, вызов

>node args.js ^PPPP

Выходы

['C: \ Program Files \ nodejs \ node.exe', 'C: \ workspace \ tests \args.js ',' PPPP ']

и вызовы

>node args.js ^^PPPP

Выходы

[' C: \ Program Files \ nodejs \ node.exe ',' C: \ workspace \ tests \ args.js ',' ^ PPPP ']


Поэтому, если вы используете терминал Windows, вам нужно удвоить ^символ ( Что означает единственное окружение в оболочке windows cmd: Больше? ). На других терминалах он работает нормально.


Редактировать: Чтобы добавить аргументы в скрипт вашего узла из npm run, вам нужно отделить ихс -- вот так:

>npm run scriptName -- ^^PPP
...