众所周知npm是个非常好用的东西,通过它我们可以很便捷的拿到很多组件来使用,于是有一些我们很常用的组件就可以上传到npm进行共享,然而不一定所有的组件都可以公开分享所以就诞生了一种新的应用场景:我们希望把组件放在一个库里,自己的所有项目都可以自由共享,其他人则访问不到。
这就催生了一种新的东西:npm私有库。
以下,是npm私有库从0到1大型纪录片。
1、全局安装verdaccio
npm install verdaccio -g
2、全局安装nrm
npm install nrm -g
3、将自己的私有库verdaccio添加到仓库列表
nrm add verdaccio http://10.10.12.13:4873/
4、使用自己的私有库作为默认首选库
nrm use verdaccio
5、启动自己的私有库
verdaccio
(注意这个命令执行后要保持命令窗口打开状态,此时私有库服务器才是运行可访问状态)
6、此时仓库已经建立并且设置为默认首选仓库了,如下图
![](https://img.haomeiwen.com/i13987022/ca29ed12b068fe48.png)
![](https://img.haomeiwen.com/i13987022/53f3d204ff0982fd.png)
7、在安装nrm过程中遇到一个报错,看了这篇博文后解决,感谢这位大佬的分享。https://segmentfault.com/a/1190000039188279
1、报错如下:
internal/validators.js:124
throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
^
[TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
at validateString (internal/validators.js:124:11)
at Object.join (path.js:375:7)
at Object.<anonymous> (D:\nvm\v14.15.4\node_modules\nrm\cli.js:17:20)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
] {
code: 'ERR_INVALID_ARG_TYPE'
}
2、解决过程:
C:\Users\用户名\AppData\Roaming\npm\node_modules\nrm
文件夹下找到cli.js 第17行修改成
//const NRMRC = path.join(process.env.HOME, '.nrmrc'); (删除)
const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');
就好了。
8、在第6步中的截图我们也看到了,显示的是localhost:4873这个很显然不方便其他人访问我们的仓库,所以还需要改一个配置文件,使之变成可以通过ip访问。
C:\Users\用户\AppData\Roaming\verdaccio下找到config.yaml文件打开后在里面加一句代码即可:
listen: 0.0.0.0:4873
如图:
![](https://img.haomeiwen.com/i13987022/da3aa235019cc348.png)
此时就可以通过ip访问我们的仓库了!如下图:
![](https://img.haomeiwen.com/i13987022/3f4d57fdd139b9b8.png)
但是问题是此时的仓库还是空的,上图中也看到了,没有组件放在里面,所以接下来,我们为仓库添加用户,上传组件。
1、添加用户:
npm adduser
如图
![](https://img.haomeiwen.com/i13987022/4adf784ac0c3bca6.png)
2、登录用户:
npm login
登录后,可以通过npm whoami
命令来查看当前登录用户
3、上传组件:
在你要上传的组件的包目录下打开终端,输入以下命令,然后静待1分钟即可。
npm publish --registry http://10.10.12.13:4873
看着那个命令哗哗哗的刷可真是成就感呐 忙活了一下午总算弄好了简直喜极而泣,老母亲心甚慰。。
![](https://img.haomeiwen.com/i13987022/a9f6b3dff14d7fe9.png)
最后的成功截图亮一波:
![](https://img.haomeiwen.com/i13987022/d0bc517bdbaac65b.png)
网友评论