npm link与bin的一些使用


前言

我在使用npm link与npm bin的相关配置时,学会了一些知识,也碰到了一些比较烦人的问题,有点懵懂。

bin

package.json中的bin字段是命令名到本地名的映射,在安装时,npm 会将文件符号链接到 prefix/bin 以进行全局安装。
当我们使用 npm 或者 yarn 命令安装包时,如果该包的 package.json 文件有 bin 字段,就会在 node_modules 文件夹下面的 .bin 目录中复制了 bin 字段链接的执行文件。我们在调用执行文件时,可以不带路径,直接使用命令名来执行相对应的执行文件。

说了这么多看不懂的鸟话,现在来说点人话,直接看下图,bin属性中key值是你想要使用的命令名(命令名你随意起),value值是你想要执行的文件。
在这里插入图片描述
在想要执行的文件开头要加上一句固定语句,这是官网上说明的。
在这里插入图片描述在这里插入图片描述
我查了一下这个语句啥意思,发现还有另外一种写法,如下所示。第一种是直接执行/usr/bin/目录下面的node,第二种事在环境变量中查找node,建议使用第二种,因为第一种你不能保证所有人的node安装路径都是在同一文件路径下。

  • #!/usr/bin/node
  • #!/usr/bin/env node

此语句含义所参考文章:https://blog.csdn.net/weixin_43990297/article/details/122330673

上面步骤走完后,我想在终端直接输入zyues就可以执行我想执行的文件,发现不行。
在这里插入图片描述
下面要结合npm link使用了。

npm link

使用npm link能够避免重复且繁琐的打包发布操作,给开发调试带来便捷。基础的功能可以参考下面这篇文章。

npm-link基本使用:https://zhuanlan.zhihu.com/p/361856970

我这里主要是使用npm link将项目链接到node全局,直接使用npm link看效果。
在这里插入图片描述
我看到将我的整个项目都链接进了node全局,且增加了全局命令zyues,打开zyues里面的内容看不懂,但是可以看到最终执行的是 node index.js ,执行的是链接进全局中的文件,且本地项目进行修改时,链接进node全局中的对应项目会实时同步修改。
在这里插入图片描述
此时在终端输入zyues就可以直接执行对应的项目。
在这里插入图片描述
npm link测试完成之后,现在我想卸载链接进node全局的项目与对应的全局命令,网上都是使用npm unlink
在这里插入图片描述
使用网上查到的npm unlink node_new_cli命令发现不起作用,没报错也不给我删除:
在这里插入图片描述
使用了另外一套流程:

npm ls --global --depth 0     // 列出所有顶级依赖项
npm ls --global node_new_cli  // 检查是否安装了包
npm rm --global node_new_cli  // 卸载全局链接的node_new_cli包\
sudo npm rm --global foo // 无权限时可以加上sudo

这套流程可以成功删除,而且我看到把我本地项目的node_modules文件夹也给删除了,不过问题不大。

总结

这些只是基础知识,后面会多看些其它文章来深入理解。后面可能还会研究一下将此项目以npm包的形式发布,然后以npm的方式进行安装。类似于npm install webapck -g,安装后就可以直接在终端输入webpack执行相应命令。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值