Как правильно использовать Parallelshell со скриптами npm? - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь использовать Parallelshell с моим проектом узла в Windows для одновременного запуска двух процессов.

Вот раздел скриптов моего файла package.json:

"scripts": {
"start": "npm run watch:all",
"test": "echo \"Error: no test specified\" && exit 1",
"lite": "lite-server",
"scss": "node-sass -o css/ css/",
"watch:scss": "onchange \"css/*.scss\" -- npm run scss",
"watch:all": "parallelshell \"npm run watch:scss\" \"npm run lite\""

}

Когда я запускаю команду npm start, я получаю этот журнал ошибок:

TypeError [ERR_INVALID_ARG_TYPE]: The "options.cwd" property must be of type string. Received type function
at normalizeSpawnArguments (child_process.js:420:11)
at spawn (child_process.js:522:38)
at C:\Users\Daniel\Documents\development\online_classes\coursera_uhk_web_dev\Bootstrap4\conFusion\node_modules\parallelshell\index.js:104:17
at Array.forEach (<anonymous>)
at Object.<anonymous> (C:\Users\Daniel\Documents\development\online_classes\coursera_uhk_web_dev\Bootstrap4\conFusion\node_modules\parallelshell\index.js:100:6)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! confusion@1.0.0 watch:all: `parallelshell "npm run watch:scss" "npm run lite"`

npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the confusion@1.0.0 watch:all script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Что-то не так с моим синтаксисом? Я могу запускать команды npm run watch:scss и npm run lite по отдельности, и они работают нормально, но я не могу выполнить команду Parallelshell.

Спасибо!

Ответы [ 4 ]

0 голосов
/ 18 апреля 2019

Я перешел на использование одновременно пакета, и он хорошо работает для меня на win64, упомянутый метод находится в посте .

Я просто использую
"watch: all": "одновременно \" npm run watch: scss \ "\" npm run lite \ ""
для замены
" watch: all ":" parallelshell \ "npm run watch: scss \" \ "npm run lite \" "

0 голосов
/ 05 августа 2018

Попробуйте понизить версию Parallelshell с 3.0.2 до 3.0.1

Согласно заявлению, это просто временное исправление.

https://github.com/darkguy2008/parallelshell/issues/57

Ниже приведен синтаксис командной строки для понижения parallelshell :

sudo npm uninstall --save-dev parallelshell@3.0.2

sudo npm install --save-dev parallelshell@3.0.1

Это сработало для меня.

Надеюсь, это поможет, и дайте нам знать.

0 голосов
/ 02 января 2019

Отличается для машин MAC и Windows. Пользователь одинарные кавычки на MAC и "\" \ на окнах. Также понизьте версию Parallelshell до 3.0.1 для работы с \ "

0 голосов
/ 18 июля 2018

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

Не уверен, что это изменит.

"watch:all": "parallelshell 'npm run watch:scss' 'npm run lite'"
...