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