我理解npm脚本会将./node_modules/.bin
添加到您的PATH
,因此您只需使用下面的npm test
运行package.json
,npm就会自动使用本地版本的mocha在./node_modules/.bin
"scripts": {
"test": "mocha"
}
这是一个很好的功能,因为它可以节省我写package.json
这样的文件:
"scripts": {
"test": "./node_modules/.bin/mocha"
}
但是如果我带来一个全球安装了mocha的新开发者呢?或者我需要将其推送到具有预配置全局包的环境中?如果我在mocha
中使用简写./node_modules/.bin/mocha
,而不是package.json
,优先级是什么,全局或本地包?
答案 0 :(得分:4)
Node.js会尝试先运行your locally installed packages。
如果需要模块,Node.js将通过浏览祖先目录(
./node_modules/
,../node_modules/
,../../node_modules/
等中的所有node_modules /目录来查找它。使用找到的第一个适当的模块。
有关Node.js如何解析所需模块的更详细说明,here is a nice breakdown。