我在 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
答案 0 :(得分:1)
您是否在全球范围内安装了 watch
?
如果是,您应该通过 npm i -D watch
将其安装为项目中的开发依赖项。确保您当前的工作目录在您的项目中。
然后,运行脚本,它应该没问题。如果这不起作用,请尝试将 npx
添加到您的脚本中,例如npx watch -p <args>
。
发生该错误是因为您将 watch
安装为全局依赖项。因此,当您在命令行中运行它时,它会起作用。