Как добавить команды Powershell в сценарий NPM?

Это работает в командной строке Powershell:

C:\rootProject\> copy ZZZ.js -destination ZZZXXX.js

Но это не работает:

package.json

"scripts": {
  "copy-script": "copy ZZZ.js -destination ZZZXXX.js"
}

Запустить скрипт:

C:\rootProject\> npm run copy-script

ОШИБКА

The syntax of the command is incorrect.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] test-copy: `copy ZZZ.js -destination ZZZXXX.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] test-copy script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\USER\AppData\Roaming\npm-cache\_logs\2019-11-29T09_29_59_261Z-debug.log

person cbdeveloper    schedule 29.11.2019    source источник


Ответы (1)


Ему нужен термин powershell перед командой внутри скрипта.

package.json

"scripts": {
  "copy-script": "powershell copy ZZZ.js -destination ZZZXXX.js"
}

Теперь это работает:

C:\rootProject\> npm run copy-script
person cbdeveloper    schedule 29.11.2019
comment
Если вы часто создаете сценарии npm, в которых; межплатформенная поддержка не является обязательным требованием, и вы регулярно используете специальные команды Powershell, а затем рассмотрите возможность изменения cmd.exe оболочки по умолчанию, которую npm использует в Windows, на pws, установив script-shell config. Примеры того, как это сделать, можно найти в этот ответ. Вы, вероятно, откажетесь от необходимости добавлять термин powershell перед командой. - person RobC; 29.11.2019