首先在终端输入npm config list 找到安装全局包的地址
npm config list
复制成功以后在拷贝到搜索的时候要去掉一个\
因为\表示网络目录,\表示本地目录
比如我的全局包在这个目录
C:\Users\sandy\AppData\Roaming\npm
进入目录以后再进入node_modules文件夹我们就可以看到安装本地安装的全局包了
以前我们是不是输入什么npm,nrm,yarn指令都会反馈结果给我们
那么我们怎么自定义指令喃?
在自定义本地包中的package.json里面进行配置
添加bin属性,下面我们就来进行简单的配置
{
"name": "gt999",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"bin": {
"gt": "index.js"
},
"keywords": [],
"author": "",
"license": "ISC"
}
这个bin属性什么意思喃?
表示我们自定义了一个叫做gt的指令,当输入这个指令的时候,会去查找index.js文件然后执行里面的代码
现在我们来试一下gt这个指令
是不是很明显就报错了,为什么报错?因为我们是不是还没有导入这个全局包
如何导入?
在自定义的本地包的终端输入npm link
npm link
导入以后来试一下看能不能运行
是不是还是不行,为什么不行?
因为系统不知道在什么环境下执行这个文件
这个文件是不是要在node环境下执行
我们是不是就需要让它在node环境下执行
如何让这个文件在node环境下执行
只需要在需要执行的文件最前面加上#! /usr/bin/env node
#! /usr/bin/env node
加上以后我们再重新导入全局包(npm link)
然后再重新的来试一下能不能执行我们自定义的指令
现在是不是就没有问题了
我们再来试一下把本地包上传然后全局安装包来测试行不行
这个很简单啊,上节已经说过了,不会的可以看看上节的文章
直接上传一下就可以了
然后全局安装这个包
npm i gt999 -g
最后来测试一下能不能成功
诶,是不是就没有问题了