在windows10系统上搭建npm仓库源

news/2025/1/4 19:36:45/文章来源:https://www.cnblogs.com/r-key/p/18646606

来源:https://www.kai666666.com/2019/06/15/建立自己的npm镜像服务器/

安装nodejs

这里默认已经安装好了nodejs,并且配置好了nodejs的各项配置.

安装verdaccio

npm install verdaccio

启动verdaccio

npx verdaccio

输出

(node:11200) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
info --- config file  - C:\Users\rkey\.config\verdaccio\config.yaml
info --- the "crypt" algorithm is deprecated consider switch to "bcrypt" in the configuration file. Read the documentation for additional details
info --- using htpasswd file: C:\Users\rkey\.config\verdaccio\htpasswd
info --- plugin successfully loaded: verdaccio-htpasswd
info --- plugin successfully loaded: verdaccio-audit

打开C:\Users\%USERNAME%\.config\verdaccio\config.yaml,

然后在最下面添加一行:listen: 0.0.0.0:4873

另外我们的国内的镜像源一般是使用淘宝镜像去下载东西的,那么可以把我们的镜像源的来源设置为淘宝的镜像源,这样可以提高国内的下载速度。做法也是修改这个配置文件,找到uplinks下面两行把url替换一下,具体的如下:

# a list of other known repositories we can talk to
uplinks:
npmjs:
  url: https://registry.npm.taobao.org/
   # 最好禁用上游仓库,若不想禁用,不用复制下面的配置,禁用了之后发布到本地仓库会很快
  enabled: false

配置好后就大功告成了,把配置文件保存一下,然后重启verdaccio(命令行中Ctrl + C,然后重新运行verdaccio命令)。

此时可以在浏览器键入http://你的IP:4873/或者http://localhost:4873/来访问管理页面。

切换到我们的镜像源

切换镜像源很简单,只要一行代码就搞定:

npm config set registry http://你的IP:4873/

当然为了更好的对镜像源管理我建议使用nrm来切换:

npm install nrm
npx nrm add verdaccio http://你的IP:4873/
npx nrm use verdaccio

这里我把我们的镜像源命名为verdaccio,你也可以定义为你喜欢的名字,公司内部建议使用公司的名称。你也可以使用nrm ls查看所有镜像源,还可以使用nrm use XXX换成镜像源列表中的其他镜像源。

使用pm2启动

我们上面直接运行命令verdaccio启动的,这样是没问题的,有的时候为了更加严谨的方式可以使用pm2pm2是一款非常优秀的进程管理工具,使用方式也很简单,我们这里就直接使用它启动了,更多使用方法可以看这里

npm install pm2
npx pm2 start verdaccio

上传一个依赖包

说了这么多我们现在可以开发一个自己的包,然后上传到我们的镜像源上。 首先切换到我们自己的源上,然后添加用户(我们镜像源上的用户不是npm镜像源中的用户)。添加用户使用下面命令,然后依次输入用户名、密码、邮箱。输入密码的时候是看不到字符的,尽管输入就可以了。当操作完了会输出一行日志Logged in as orange on http://你的IP:4873/.表示创建用户并登录成功了。

npm adduser

此时你也可以使用npm whoami查看你是否登录成功了。

此时你可以创建一个依赖包,然后上传上去了。我们来定义一个依赖包的名称,比如就叫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

此时如果看到+ 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!说明我们上传的依赖已经可以使用了。

安装nrm

npm install nrm

npx nrm ls

npx nrm use verdaccio

设置npm在从注册表中获取包时超时前等待的最短时间(以毫秒为单位)。默认值为10000毫秒(10秒),

您可以将其设置为500毫秒或更短的时间。例如:

npm config set fetch-retry-mintimeout 500

设置npm在从注册表中获取包时超时前等待的最长时间(以毫秒为单位)。默认值为10000毫秒(10秒),您可以将其设置为500或更短的时间。例如:

npm config set fetch-retry-maxtimeout 500

 

从其他npm源下载包,例如下载webpack:

npm pack webpack --registry=https://registry.npm.taobao.org

上传下载好的webpack包到自己本地搭建的npm仓库:

npm publish webpack-5.97.1.tgz --registry=http://localhost:4873

 

删除指定包的所有版本.比如我不小心发布了一个名为5的空包,想要删除掉怎么办?如果执行一次不行,就执行2次,第一次可能会提示你这是强制删除

npm unpublish 5 --force

删除指定包的指定版本,比如我想删除5的0.0.1的版本,如果执行一次不行,就执行2次,第一次可能会提示你这是强制删除

npm unpublish 5@0.0.1 --force
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/862539.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux内核】字节序和位域(1)

Linux内核定义的TCP首部的结构体tcphdr如下图所示。你会发现一个奇怪的问题:处理器使用大端字节序时字节内部的位域定义顺序和处理器使用小端字节序时相反,但是位域的字节顺序相同。如果你能把这个问题解释清楚,那么说明你已经完全掌握字节序和比特序,不需要阅读这篇文章。…

多尺度计算3

分成四个阶段第一个阶段,是pretrain。先学习mean和variance的生成,一条轨迹会生成两个平均值和方差(分别表示时间和空间的)。然后输入到解码器中解码,两个lstm.一个用于重构时间,一个是用于重构路段 第二个阶段,是生成Gaussian model。计算sample轨迹的mean和variance,…

[Windows/虚拟化/OS] WSL(Windows Subsystem for Linux)技术

概述:WSL 什么是WSL?WSL代表“Windows Subsystem for Linux”,是一种由Microsoft开发的技术,允许在Windows操作系统上运行Linux发行版(如Ubuntu、Debian、Fedora等)。WSL的目标是在Windows环境中提供原生的Linux兼容性,让开发者能够在Windows系统上进行Linux开发,无需创…

NGINX完全指南:实现高性能负载均衡的进阶实操指南(第三版)PDF、EPUB免费下载

NGINX 是当今使用最广泛的 Web 服务器之一,部分原因在于它可以用作 HTTP 和其他网络协议的负载均衡器和反向代理服务器。本修订版完全指南通过一些简单易懂的例子解析了应用交付中真实存在的问题。实用的实操指南可帮助您设置开源或商业产品,并利用它们解决各种用例中的问题。…

架构师启示录:知识模型、落地方法与思维模式PDF、EPUB免费下载

本书由资深架构师撰写,从架构知识模型、架构落地方法和架构思维模式三大维度剖析架构师的能力模型。具体而言,本书融合TOGAF、DDD、RUP等主流架构方法论,抽象出一个具有高度普适性的架构认知框架,帮助读者轻松入门,成为合格架构师。适读人群 :资深程序员、初级架构师 从架…

Chrome Updater(Chrome更新器) v2.1

Chrome Updater 是一个便携Chrome、Chrome++版本检查和更新的工具。将程序放置于App目录内或手动指定App文件夹,未检测到Chrome将初始化安装。部分API依赖于GitHub服务,如果遇到网络问题可以设置GitHub代理。Chrome及Chrome++均可单独更新,互不影响。 配置存储路径:C:Users…

PowerISO(映像文件处理) v8.9 中文版

PowerISO作为一款专业的映像文件处理软件,凭借其出色的功能收到了众多用户的喜爱。PowerISO软件小巧,下载包仅为3.6M,支持大部分的CD/DVD–ROM映像文件格式,而且PowerISO同时支持Windows的32位与64位操作系统,功能实用,操作简便。获取地址:https://www.dmjf.top/2273.htm…

Android 万能格式转换器 v1.2.1 专业版

万能格式转换器 是一个一键操作的格式转换工具,可以轻松实现多种视频格式、音频格式、文档格式、图片格式转换。同时支持日常生活中的各种文件转换,比如视频转换音频、视频压缩、视频音频提取、图片转pdf、视频md5转码等。获取地址:https://www.dmjf.top/2592.html

PDF-XChange Editor Plus(PDF编辑器) v10.4.4.392 便携版

PDF-XChange PRO-使用PDF的通用解决方案。包含了Tracker软件的三个最佳应用程序的软件包:PDF-XChange Editor Plus,PDF-Tools和PDF-XChange Standard。 使用PDF-XChange Editor Plus,您可以创建,查看和编辑图像和PDF文件。 PDF-Tools在创建和处理PDF文件方面处于世界领先地…

《docker基础篇:5.本地镜像发布到阿里云》

《docker基础篇:5.本地镜像发布到阿里云》@目录5.本地镜像发布到阿里云本人其他相关文章链接 5.本地镜像发布到阿里云案例使用步骤: 1)本地镜像素材原型 2)阿里云开发者平台 3)创建仓库镜像 4)将镜像推送到阿里云 5)将阿里云上的镜像下载到本地 6)运行 注意点1: 本地镜…

【Linux运维】网络及网卡收发数据过程和Linux服务器排查丢包方法

服务器丢包是网络通信中常见的问题之一,它会导致网络不稳定和数据丢失,进而影响业务的正常运行。面对这种情况,我们需要采取一系列措施来诊断和解决问题。以下是一些有效的解决方法和建议,帮助你应对服务器丢包问题。 首先,我们要知道网络数据是如何封装及流向的,涉及哪些…

教育资源库:AI知识库在教学资源共享中的作用

一、引言 在当今教育领域,教学资源共享已成为提升教学质量和促进教育公平的重要手段。然而,传统的教学资源共享方式面临着诸多挑战,如资源检索效率低下、资源质量参差不齐、难以实现个性化学习等。随着人工智能技术的快速发展,AI知识库作为一种新兴的智能工具,正逐步改变教…