NodeJS:当我尝试使用 package.json 的脚本执行命令时出错

时间:2021-03-08 17:28:50

标签: node.js npm package.json

我在 package.json 文件中包含了下一个命令:

"scripts": {
...
"watch:js": "watch -p ./cartridges/app_skberge_peru/cartridge/client/default/js/*.js  -c npm run compile:js",
...
}

当我像这样在命令行中执行命令时:

watch -p './cartridges/app_skberge_peru/cartridge/client/default/js/*.js'  -c 'npm run compile:js'

它工作得很好,但是当我尝试这样做时:

npm run watch:js

它给了我下一个错误:

> Watching compile:js'
C:\Users\Ángel - Trabajo\Desktop\VISEO\Proyectos\skberge\code\app_skberge_peru\node_modules\watch\main.js:73
    if (err) throw err;
             ^

Error: ENOENT: no such file or directory, stat 'C:\Users\Ángel - Trabajo\Desktop\VISEO\Proyectos\skberge\code\app_skberge_peru\compile:js''
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! app_skberge_peru@0.0.1 watch:js: `watch -p './cartridges/app_skberge_peru/cartridge/client/default/js/*.js'  -c 'npm run compile:js'`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the app_skberge_peru@0.0.1 watch:js 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\Ángel - Trabajo\AppData\Roaming\npm-cache\_logs\2021-03-08T17_25_59_377Z-debug.log

我确定它一定是关于引号内的格式,但我就是无法得到我想要的。

谢谢!

编辑:

我尝试执行:

"watch:js": "watch -p \"./cartridges/app_skberge_peru/cartridge/client/default/js/*.js\"  -c \"npm run compile:js\""

但我收到下一个输出:

> app_skberge_peru@0.0.1 watch:js C:\Users\aquesada\Desktop\Proyectos\skberge\app_skberge_peru
> watch -p "./cartridges/app_skberge_peru/cartridge/client/default/js/*.js"  -c "npm run compile:js"

Usage: watch <command> [...directory] [--wait=<seconds>] [--filter=<file>] [--interval=<seconds>] [--ignoreDotFiles] [--ignoreUnreadable]

这很奇怪,因为如果我执行您在命令行的输出中看到的内容,它会完美运行

> watch -p "./cartridges/app_skberge_peru/cartridge/client/default/js/*.js"  -c "npm run compile:js"
Watching started

1 个答案:

答案 0 :(得分:1)

您是否在全球范围内安装了 watch

如果是,您应该通过 npm i -D watch 将其安装为项目中的开发依赖项。确保您当前的工作目录在您的项目中。

然后,运行脚本,它应该没问题。如果这不起作用,请尝试将 npx 添加到您的脚本中,例如npx watch -p <args>

发生该错误是因为您将 watch 安装为全局依赖项。因此,当您在命令行中运行它时,它会起作用。