5分钟内本地NPM存储库及其软件包和缓存

美好的一天!

迟早,组织会在项目之间分配js模块时遇到问题,在我们公司出现这个问题的时候到了。

复制和粘贴代码是通往黑暗面的方法,因此决定不仅编写js代码,还决定从中创建npm软件包以在项目之间分发。

对免费的私人npm信息库的搜索已陷入僵局,在npm上使用私人信息库需要付费(这不是我们的想法)。

由于办公室的服务器始终(几乎)可以正常工作,因此决定部署本地npm。

图片

流行的本地npm存储库的设备非常简单单调,我们选择Verdaccio ,是因为它的更新是相对较新的。

这主要是一个安装在Node.js> 4上的npm软件包,它提供了到特定端口的Web界面。

缓存功能是一个巨大的优势,当本地npm找不到从其请求的软件包时,它将转到npmjs.com,将必要的软件包下载到磁盘,并在重复请求此软件包时分发其已缓存的版本。

因此,进行设置。

在将作为服务器的机器上:

npm i -g verdaccio 

在文件C:\ Users \ lab \ AppData \ Roaming \ verdaccio \ config.yaml中有服务器参数

默认参数是可行的,您不能更改任何内容,只需在文件末尾添加设置即可,这要归功于Verdaccio能够理解要监听的端口。

 listen: 192.168.51.79:1234 

192.168.51.79是IP服务器,通过设置地址,以便我们可以通过IP服务器从本地网络访问,或者通过其DNS名称并添加端口1234,我们将进入Web界面。

如果注册侦听:192.168.51.79:80,则在配置客户端时无需编写端口。

接下来,运行我们的本地npm

 verdaccio 

其余操作将在客户端上执行。

设置本地存储库的路径。

 npm set registry http://192.168.51.79:1234 

完成后,您的所有npm请求都将通过本地服务器并进行缓存。

如果您需要将npm软件包发布到服务器,请按照以下说明进行操作。

建立使用者

 npm adduser --registry http://192.168.51.79:1234 login password mail@mail.ru 

登入

 npm login password bezrukov@mir-omsk.ru 

我们检查我们是否在用户“登录”下

 npm whoami 

我们发布了包,rootProjectFolder是一个至少包含三个文件index.js \ package.json \ README.md的文件夹, 示例发布在github上

 cd /rootProjectFolder npm publish 

更新程序包。 我们更新package.json中的版本,执行命令

 cd /rootProjectFolder npm publish 

在本地服务器上的软件包,您可以转到192.168.51.79:1234,然后看到有一个新软件包。

顺便说一下,有关每个软件包的信息以方便的形式显示,并且可以搜索本地软件包。

图片

PS:如果您的网络具有代理,那么您需要在服务器上显式指定其参数,但是您不需要在客户端上执行此操作,因为npm存储库是本地的,并且不需要代理服务器即可访问客户端。

在服务器上,运行npm config edit命令并添加以下行

 proxy=http://name:pass@proxy:port/ https-proxy=http://name:pass@proxy:port/ registry=http://registry.npmjs.org/ 


PPS在Windows上运行时,最好在服务器上使用Powershell,因为cmd npm一天后可能会冻结。

我将很高兴就此如何为您提供评论和反馈。

Source: https://habr.com/ru/post/zh-CN427069/


All Articles