问题 运行 parallelshell Nodejs 脚本
Problem running parallelshell Nodejs script
在我的 package.json 文件中,我有以下脚本:
"scripts": {
"start": "npm run watch:all",
"test": "echo \"Error: no test specified\" && exit 1",
"lite": "lite-server",
"sass": "node-sass -o sass/ css/",
"watch:sass": "onchange 'sass/*.scss' -- npm run sass",
"watch:all": "parallelshell 'npm run watch:sass' 'npm run lite'"
}
每当我 运行 我的代码时,我都会收到此错误消息:
crs@1.0.0 start /home/hazem/crs
> npm run watch:all
> crs@1.0.0 watch:all /home/hazem/crs
> parallelshell 'npm run watch:sass' 'npm run lite'
child_process.js:422
throw new ERR_INVALID_ARG_TYPE('options.cwd', 'string', options.cwd);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "options.cwd" property must be of type string. Received type function
at normalizeSpawnArguments (child_process.js:422:11)
at spawn (child_process.js:537:38)
at /home/hazem/crs/node_modules/parallelshell/index.js:104:17
at Array.forEach (<anonymous>)
at Object.<anonymous> (/home/hazem/crs/node_modules/parallelshell/index.js:100:6)
at Module._compile (internal/modules/cjs/loader.js:722:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! crs@1.0.0 watch:all: `parallelshell 'npm run watch:sass' 'npm run lite'`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the crs@1.0.0 watch:all 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! /home/hazem/.npm/_logs/2018-11-24T19_19_24_809Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! crs@1.0.0 start: `npm run watch:all`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the crs@1.0.0 start 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! /home/hazem/.npm/_logs/2018-11-24T19_19_24_823Z-debug.log
那么,在这种情况下,可能是什么问题?脚本有问题吗?或者 nodejs 中的 Parallelshell 脚本中的错误?
Parallelshell 存在问题,必须手动修复;
转到文件:
node_modules/parallelshell/index.js:105
然后更改此行:
cwd: process.versions.node < '8.0.0' ? process.cwd : process.cwd(),
为此:
cwd: parseInt(process.versions.node) < 8 ? process.cwd : process.cwd(),
完成!
它对我有用,因为我遇到了类似的问题 parallelshell 3.2.2 无法处理我的节点,所以我必须降级它
cwd:
parseInt(process.versions.node) < 8 ? process.cwd : process.cwd()
如果这样做后仍然遇到问题,则必须使用以下行降级 paralleshell 的版本:
sudo npm install --save-dev parallelshell@3.0.1
它对我有用。
在我的 package.json 文件中,我有以下脚本:
"scripts": {
"start": "npm run watch:all",
"test": "echo \"Error: no test specified\" && exit 1",
"lite": "lite-server",
"sass": "node-sass -o sass/ css/",
"watch:sass": "onchange 'sass/*.scss' -- npm run sass",
"watch:all": "parallelshell 'npm run watch:sass' 'npm run lite'"
}
每当我 运行 我的代码时,我都会收到此错误消息:
crs@1.0.0 start /home/hazem/crs
> npm run watch:all
> crs@1.0.0 watch:all /home/hazem/crs
> parallelshell 'npm run watch:sass' 'npm run lite'
child_process.js:422
throw new ERR_INVALID_ARG_TYPE('options.cwd', 'string', options.cwd);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "options.cwd" property must be of type string. Received type function
at normalizeSpawnArguments (child_process.js:422:11)
at spawn (child_process.js:537:38)
at /home/hazem/crs/node_modules/parallelshell/index.js:104:17
at Array.forEach (<anonymous>)
at Object.<anonymous> (/home/hazem/crs/node_modules/parallelshell/index.js:100:6)
at Module._compile (internal/modules/cjs/loader.js:722:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! crs@1.0.0 watch:all: `parallelshell 'npm run watch:sass' 'npm run lite'`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the crs@1.0.0 watch:all 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! /home/hazem/.npm/_logs/2018-11-24T19_19_24_809Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! crs@1.0.0 start: `npm run watch:all`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the crs@1.0.0 start 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! /home/hazem/.npm/_logs/2018-11-24T19_19_24_823Z-debug.log
那么,在这种情况下,可能是什么问题?脚本有问题吗?或者 nodejs 中的 Parallelshell 脚本中的错误?
Parallelshell 存在问题,必须手动修复;
转到文件:
node_modules/parallelshell/index.js:105
然后更改此行:
cwd: process.versions.node < '8.0.0' ? process.cwd : process.cwd(),
为此:
cwd: parseInt(process.versions.node) < 8 ? process.cwd : process.cwd(),
完成!
它对我有用,因为我遇到了类似的问题 parallelshell 3.2.2 无法处理我的节点,所以我必须降级它
cwd:
parseInt(process.versions.node) < 8 ? process.cwd : process.cwd()
如果这样做后仍然遇到问题,则必须使用以下行降级 paralleshell 的版本:
sudo npm install --save-dev parallelshell@3.0.1
它对我有用。