nexus 上搭建npm本地服务器

nexus 纯小白文,如有雷同,大概率我参考了你的文档。

1.在本地运行nexus

附上下载链接:Nexus Repository OSS 下载链接
附上文档链接:Nexus Repository OSS 文档链接

有几个值得注意的是

  • 我的 系统为 64位 win 7,平时只配置了java的基本环境,没有配置编译环境。很尴尬,配置javac耽误了我一点时间。需要的同学,在运行之前 需要配置一下jre环境。

  • 我下载的是 nexus-3.5.0-02 这个版本。事实证明在win下虽然看起来一副人畜无害的样子,似乎可以直接点击安装,但是事实上,啧啧啧。

Paste_Image.png

这里没有好好阅读文档,也消耗了我的一些时间,下面放出win 下正确启动方法

// 在 \nexus-3.5.0-02\bin 目录下执行
$ nexus.exe /run
  • 这里经测试 用win自带的cmd,和budun都可以比较好的启动,用git bash则启动不是很好


    Paste_Image.png

启动之后默认地址为 localhost:8081, 默认账号密码 admin/ admin123

Nexus Repository Manager 中添加 npm

如果点击:

Paste_Image.png

这里有三个类型的npm选项:

Paste_Image.png

文档中对这三个类型的仓库有详细的解释:

Paste_Image.png

附上某歌翻译:

Proxying npm Registries

为了减少开发人员和CI服务器的重复下载量并提高下载速度,您应该对托管在https://registry.npmjs.org上的注册表进行代理。 默认情况下,npm直接访问此注册表。 您还可以代理您需要的任何其他注册表。
要代理外部npm注册表,您只需创建一个新的npm(代理),如“存储库管理”中所述。
最小配置步骤是:

Private npm Registries

私人npm注册表可用于上传您自己的软件包以及第三方软件包。 您可以通过在存储库管理器中设置npm格式的托管存储库来创建私有的npm注册表。 为了这些目的,建立两个独立的托管存储库是一个很好的做法。
要创建具有npm格式的托管存储库,只需创建一个新的npm(托管),如“存储库管理”中所述。
最小配置步骤是:

  • 定义名称
  • 选择存储的Blob存储

随着软件包从存储库部署或删除,npm注册表信息将立即更新。

Grouping npm Registries

存储库组是将所有npm注册表存储库从存储库管理器公开给您的用户的推荐方式,而不需要任何其他客户端配置。存储库组允许您将多个代理和托管存储库的聚合内容公开为一个URL到npm和其他工具。这可以通过创建一个新的npm(组),如“存储库管理”中所述,用于npm存储库。
最小配置步骤是:

  • 定义名称
  • 选择存储的Blob存储
  • 以所需的顺序将npm存储库添加到成员列表中

典型的有用的示例是将代理存储库分组:代理npm注册表,npm托管存储库与内部软件包和另一个npm托管存储库与第三方软件包。
使用存储库组的URL作为客户端工具中的npm存储库URL,您可以使用一个URL访问所有三个存储库中的软件包。添加的任何新软件包以及添加到组中的任何新存储库将自动可用。


  1. 创建 Proxying npm Registries 代理仓库
Paste_Image.png
  1. 创建 Hosted npm Registries 代理仓库
Paste_Image.png
  1. 创建 Grouping npm Registries 仓库
    需要注意的是组仓库要把之前的 proxy 和 hosted 都添加上。
Paste_Image.png

我的目录对应为 mytest/myhost/mygroup

在home目录下, 的.npmrc文件中添加 registry = http://localhost:8081/repository/npm-all/ 。这个路径要和自己的路径一致,并且最后的rep名要和group相同。

win下 home路径:


Paste_Image.png

这时尝试一下

// 查看一下 是否从本地服务器中下载
$ npm -loglevel info install grunt
图片我抄的,我自己的没截图

此时可以验证一下 是否依赖走了代理:

Paste_Image.png

设置权限

把这个选项拖到右边就可以了

Paste_Image.png

在admin之外可以重新设置一个账号,以及权限

Paste_Image.png
// 使用
$ npm login –registry=http://localhost:8081/repository/mygroup
// 进行登陆,需要填写账号、密码以及邮箱。
Paste_Image.png

发布到hosted

我和原教程不一样的是:我发布到本地hosted, 而不是直接到npm社区,这里需要注意的是 通过proxy是可以直接发布到npm社区的,使用的是社区的账号密码,这个需要提前申请

要发布的模块,必须保证在根目录下有package.json文件,否则会报错。

pachage.json文件内容比较随意,如果比较懒 可以用 npm init 直接自动生成。

  {
      "name": "myhost",
      "version": "1.0.0"
    }

然后执行发布命令:

 $ npm publish –registry http://localhost:8081/repository/myhost
Paste_Image.png

然后我遇到了报错,按照报错执行

 $ npm adduser –registry http://localhost:8081/repository/myhost

这里值得注意的是, adduser的时候要指明是哪个rep,要不就会add到默认的.npmrc 里添加的 rep中

Paste_Image.png

添加完用户之后,再执行发布命令就ok了。

Paste_Image.png

package.json可以指定name 和version并且可以添加发布路径的配置:

  {
     "name": "intro",
     "version": "1.0.0",
     "publishConfig" : {
         "registry" : "http://localhost:8081/repository/myhost/"
      }
  }

这样的话发布直接用 npm publish就可以了。

发布之后可以在 系统中的 左侧browse 中的assets中看到上传的资源

Paste_Image.png

group 中可以同时看到 proxy 和 hosted 的资源, proxy会存下第一次下载过的目录,之后再下载时走的是代理,hosted存的是本地上传的包资源。

然后可以在本地下载一下刚才上传到hosted的包:

Paste_Image.png

以上,为所有内容。

参考: npm 私服(上)npm 私服(下)nexus搭建npm私服
感谢以上朋友的文档, 内容侵删。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,431评论 25 707
  • 首先私服是一种衍生出来的特殊的Maven远程仓库,构建私服的好处请看3.5私服 可以帮助大家建立私服的仓库管理软件...
    zlcook阅读 10,527评论 0 32
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,863评论 6 13
  • 下属不断是问:XX,这个图片拍的太差了。这个不是应该是XX来做的吗? 于是,我们向上级也做这样的反馈:这样太烦了,...
    云韩阅读 140评论 0 0