比如mocha
,我只在项目里面安装它:
npm install mocha
现在我在windows下的cmd
运行它的命令行工具:
./node_modules/.bin/_mocha
是不行的。
是不是一定要全局安装npm install -g mocha
才可以运行它的命令行工具?
我知道是可以通过在package.json
里面配置scripts
来npm run xx
。
比如mocha
,我只在项目里面安装它:
npm install mocha
现在我在windows下的cmd
运行它的命令行工具:
./node_modules/.bin/_mocha
是不行的。
是不是一定要全局安装npm install -g mocha
才可以运行它的命令行工具?
我知道是可以通过在package.json
里面配置scripts
来npm run xx
。
package.json中提供一个
bin
字段,它是一个命令名和本地文件名的映射。在安装时,如果是全局安装,npm将会使用符号链接把这些文件链接到prefix/bin
,如果是本地安装,会链接到./node_modules/.bin/
。
1.关于npm 的 prefix
在npm中安装全局文件时,npm会把他安装在npm里面配置的prefix路径下,查看prefix的方法是:npm config list
,设置方法是 npm config set prefix
你的路径。
2.关于gulp 不是内部或外部命令,也不是可运行的程序或批处理文件 其实这个和prefix没什么关系,npm会把它安装成功后建立的一个可执行文件放在他自己的路径下,你只要找到你安装gulp后生成的gulp.exe文件的位置,把它的路径配置到系统环境变量path
下面就了
其实你可以直接用命令行运行bin内的文件
比如你install 了一个gulp
那么根据gulp的package.json文件,你可以知道bin里面gulp文件运行的位置
然后你就可以运行
node ./node_modules/gulp/bin/gulp.js
效果与 global安装下 运行gulp 效果是一样的。
2 回答4.2k 阅读✓ 已解决
3 回答8k 阅读
1 回答4.6k 阅读✓ 已解决
5 回答1.1k 阅读✓ 已解决
2 回答5.7k 阅读
2 回答1.8k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
如果在window下开发,推荐先安装git,安装后就拥有了类linux的环境——git bash的shell:
运行就没问题了哦。
其实只要我们懂得:npm install -g xx 不光是将xx模块安装到全局环境中,还将xx模块所携带的/.bin/中命令注入到了全局环境,使得你可以在shell中:mocha xxx