npm run 在哪里寻找脚本?

Hob*_*mok 3 node.js npm jasmine

当我npm run test在命令行中输入时,npm 会转到package.json, 部分"scripts"并尝试在那里匹配"test"

“test”后面的行如下:

"JASMINE_CONFIG_PATH=./spec/support/jasmine.json jasmine-run"
Run Code Online (Sandbox Code Playgroud)

但第一部分(除了 之外的所有内容jasmine-run)都可以毫无问题地删除(我有一个类似结构的项目,它可以工作,所以我可以测试这些修改)。

npm 在哪里寻找jasmine-run

因为由于我有一个提供的脚本可以工作的项目,所以我可以查找它,但答案是:在node_modules旁边的文件夹中package.json是一个模块,在该package.json模块中,在以下"bin"部分中:

"jasmine-run": "tools/jasmine-run/jasmine-run.js",
Run Code Online (Sandbox Code Playgroud)

然而,这两个项目中都存在这种确切的设置,并且在一个项目中一切正常,而在另一个项目中则jasmine-run找不到。

小智 5

当您使用 npm 运行脚本时,例如:

npm run-script <name>
Run Code Online (Sandbox Code Playgroud)

或者使用类似的快捷方式

npm test or npm start, 
Run Code Online (Sandbox Code Playgroud)

当前包目录的 bin 目录位于路径的前面。对于您来说,在许多情况下可能会是 ./node_modules/.bin/,其中包含指向您的包的可执行脚本的链接。

无论如何,您在这里了解了 npm 运行如何工作的所有解释: https: //docs.npmjs.com/cli/run-script