目录

在windows10系统上搭建npm仓库源

在windows10系统上搭建npm仓库源

安装Verdaccio

npm install -g verdaccio

启动verdaccio verdaccio 打开 config.yaml 路径在第一行 config file - C:\Users\huyun\AppData\Roaming\verdaccio\config.yaml 最下面添加一行 listen: 0.0.0.0:4873 另外我们的国内的镜像源一般是使用淘宝镜像去下载东西的,那么可以把我们的镜像源的来源设置为淘宝的镜像源,这样可以提高国内的下载速度。做法也是修改这个配置文件,找到uplinks下面两行把url替换一下,具体的如下:

a list of other known repositories we can talk to

uplinks: npmjs: url:

最好禁用上游仓库,若不想禁用,不用复制下面的配置,禁用了之后发布到本地仓库会很快

enabled: false 配置好后就大功告成了,把配置文件保存一下,然后重启verdaccio(命令行中Ctrl + C,然后重新运行verdaccio命令)。 此时可以在浏览器键入http://你的IP:4873/或者http://localhost:4873/来访问管理页面。 切换到自己的镜像源很简单,只要一行代码就搞定: npm config set registry http://你的IP:4873/

上传一个依赖包

说了这么多我们现在可以开发一个自己的包,然后上传到我们的镜像源上。 首先切换到我们自己的源上,然后添加用户(我们镜像源上的用户不是npm镜像源中的用户)。添加用户使用下面命令,然后依次输入用户名、密码、邮箱。输入密码的时候是看不到字符的,尽管输入就可以了。当操作完了会输出一行日志Logged in as orange on http://你的IP:4873/.表示创建用户并登录成功了。 npm adduser –registry http://localhost:4873/ 此时你也可以查看你是否登录成功了 npm whoami 我这里执行后,会显示我的用户名 root 此时你可以创建一个依赖包,然后上传上去了。我们来定义一个依赖包的名称,比如就叫my-package,找一个目录输入下面命令: mkdir my-package cd my-package npm init npm init后会让你输入其他的配置项,比如包名是my- package,其他的直接按回车,最后输入一个yes就可以了。此时你会看到目录下多了一个文件夹叫my- package里面有个文件package.json。 接下来我们在my-package文件夹下,创建一个index.js的文件。输入下面的代码: module.exports = function (){ console.log(Hello World!); } 此时我们已经创建好了一个非常简单的包,然后我们可以上传了,使用shell/cmd进入我们的my-package目录,然后输入命令: npm publish –registry http://localhost:4873/ 此时如果看到+ my-package@1.0.0说明已经上传成功了,你可以用浏览器打开http://你的IP:4873/你会发现确实多了一个包。 如果你在之后上传的时候一定要修改package.jsonversion字段,并且要大于现在,否则不能上传。也可以使用命令npm version 1.0.1直接修改版本号。

使用开发好的依赖包

现在我们使用我们的依赖包,首先在与my-package同级目录下再建一个文件夹,比如叫use-package。同样使用npm init去初始化我们的项目。并且创建一个index.js的文件。 此时你可以安装我们刚才发布的那个包了: npm install my-package 并且在index.js中输入以下代码: const helloWorld = require(‘my-package’) helloWorld() 此时大功告成,在shell/cmd中打开use-package文件夹,然后输入命令node index,如果看到Hello World!说明我们上传的依赖已经可以使用了。

上传npm包到自己搭建的仓库源里

从其他npm源下载包,例如下载webpack: npm pack webpack –registry=https://registry.npm.taobao.org 上传下载好的webpack包到自己本地搭建的npm仓库: npm publish webpack-5.98.0.tgz –registry=http://localhost:4873 如果发布不上去,是包的问题,可以用上面例子测试发布.tgz包 npm pack .\my-package
npm unpublish my-package –force npm publish my-package-1.0.0.tgz –registry=http://localhost:4873