windows下是不是只有全局安装npm的模块包才能执行命令行工具?

发布于 2022-09-02 14:59:17 字数 341 浏览 22 评论 0

比如mocha,我只在项目里面安装它:

npm install mocha

现在我在windows下的cmd运行它的命令行工具:

./node_modules/.bin/_mocha

是不行的。

是不是一定要全局安装npm install -g mocha才可以运行它的命令行工具?

我知道是可以通过在package.json里面配置scriptsnpm run xx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

仲春光 2022-09-09 14:59:17

如果在window下开发,推荐先安装git,安装后就拥有了类linux的环境——git bash的shell:

./node_modules/.bin/_mocha

运行就没问题了哦。

其实只要我们懂得:npm install -g xx 不光是将xx模块安装到全局环境中,还将xx模块所携带的/.bin/中命令注入到了全局环境,使得你可以在shell中:mocha xxx

方觉久 2022-09-09 14:59:17

是的,linux下也一样的

厌味 2022-09-09 14:59:17

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 下面就了

坚持沉默 2022-09-09 14:59:17

其实你可以直接用命令行运行bin内的文件

比如你install 了一个gulp

那么根据gulp的package.json文件,你可以知道bin里面gulp文件运行的位置

然后你就可以运行

node ./node_modules/gulp/bin/gulp.js

效果与 global安装下 运行gulp 效果是一样的。

丶视觉 2022-09-09 14:59:17

用npx命令就可以直接执行本地安装的模块(前提是package.json完整)

缪败 2022-09-09 14:59:17

想给二楼点赞,可是没有声望连赞都不能点,可惜我还专门登录了一下,手动点赞~(≧▽≦)/~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文