云上免费 npm 私有源怎么起步:从发包到公开分发

简介: 不想自建服务器时,用 AngusRepo 云服务托管私有 npm:统一源安装、HOSTED 发布,对外用公开浏览页复制匿名安装命令。

要发 @company/sdk,又不想先买机跑 Verdaccio——可以先走云服务:控制台建 npm 仓,开发机只配一个 registry,CI 用 Deploy Token(常见前缀 repod_)发布。合作方不愿收令牌时,再把交付 HOSTED 标公开,让对方在 /explore 复制免认证安装命令。

结论: 云服务可托管私有 npm;安装走 GROUP、发布走 HOSTED;PROXY 缓存 npmjs;公开分发用独立 public-* HOSTED + 主机路径 /explore。不要把含私有成员的 GROUP 勾公开。权限 = 仓库 ACL + 令牌,没有开箱 tenant_id。

需要自己装社区版、从零跑 install.sh 时,见文末参考:npm 私服怎么搭。国内直连 npmjs 不稳时的诊断与 PROXY 缓存验收,见文末参考:国内访问 npmjs 不稳怎么办——本文只写云起步与公开发现,不展开排障长文。

1. 云服务还是社区自建

路径 适用 说明
云服务 不想自管机与证书 托管 HTTPS;示例主机 https://repo.anguskit.com。具体租户接入主机以控制台「接入配置」为准
社区版私有化 数据必须进内网 GPL-3.0;机器、证书与网络自担

用量与限额以控制台当前租户显示为准;触顶后 publish / 上传会被拒绝。

2. 最小拓扑(云上同样三仓)

仓库名示例 类型 干什么
npm-hosted HOSTED npm publish 唯一目标;建议禁止覆盖正式版
npmjs-proxy PROXY 远程 https://registry.npmjs.org,只读缓存
npm-all GROUP 开发机 / CI 的统一 registry;成员顺序 hosted → proxy

口诀:拉 GROUP,推 HOSTED,PROXY 只读。

GROUP 的 packument 按成员取并集;同名冲突时 HOSTED 优先,有助于降低依赖混淆。开发者日常只记一个安装 URL。

CI (repod_) ──publish──► npm-hosted (HOSTED)
开发机 ──registry──► npm-all (GROUP) ──► hosted + npmjs-proxy
合作方 ──匿名──► /explore ──► public-npm (公开 HOSTED,另建)

3. 可操作步骤

3.1 控制台建仓与令牌

  1. 登录云控制台,创建上表三个 npm 仓(名称可自定,后面配置保持一致)。
  2. 为 CI 建 Deploy Token(常见前缀 repod_),对 npm-hosted 开 Write;开发者对 npm-all 开 Read。个人调试也可用门户签发的用户访问令牌(PAT)。
  3. 令牌只显示一次:放进 CI Secret / 本地环境变量,不要写进 Git。

字段与路径以控制台「接入配置」为准;格式细节见文末参考:npm 格式手册。完整私有化安装不在本文,见文末参考:npm 私服怎么搭。

3.2 项目 .npmrc(HTTPS)

迁移期推荐:只切公司 scope(公共包仍走原源):

@mycompany:registry=https://repo.anguskit.com/npm/npm-all/
//repo.anguskit.com/npm/npm-all/:_authToken=${NPM_TOKEN}
//repo.anguskit.com/npm/npm-hosted/:_authToken=${NPM_TOKEN}

整仓默认走私服:

registry=https://repo.anguskit.com/npm/npm-all/
//repo.anguskit.com/npm/npm-all/:_authToken=${NPM_TOKEN}
//repo.anguskit.com/npm/npm-hosted/:_authToken=${NPM_TOKEN}

三个高频坑:

  1. registry 末尾要有 /,漏掉是最常见的低级错误。
  2. _authToken 行不要带 https://,主机路径须与 registry 一致(含路径与末尾斜杠)。
  3. 旧 package-lock.json 会锁公网 registry——迁源后删 lock 重装,或批量改 resolved,否则仍会打到 npmjs。

npm CLI 自 7.10 起已移除 always-auth,写了也不生效——靠 URL 作用域的 _authToken 覆盖元数据与 tarball。pnpm ≥11.5.3 对项目级 ${...} 凭据行另有限制,见文末参考:pnpm / yarn 私有源。

3.3 发布与安装闭环(验收)

export NPM_TOKEN="你的令牌"   # CI 用 Secret 注入

# 先确认令牌对 HOSTED 生效
npm whoami --registry https://repo.anguskit.com/npm/npm-hosted/

# 发布到 HOSTED(scoped 包默认私有发布)
npm publish --registry https://repo.anguskit.com/npm/npm-hosted/ --access restricted

# 干净目录验证安装走 GROUP
npm view @mycompany/hello --registry https://repo.anguskit.com/npm/npm-all/
npm install @mycompany/hello --registry https://repo.anguskit.com/npm/npm-all/

验收勾选:whoami 成功 → publish 成功 → 另一干净目录经 GROUP view/install 成功。whoami 失败就先别 publish。401 / scope 错位见文末参考:npm publish 401 排查。

同一台机器上再跑一次「假干净」核对,避免本机缓存骗过验收:

# 看生效 registry,确认不是全局仍指向 npmjs
npm config get registry
# 若项目用了 scope 映射,还应看到 @mycompany 指向 GROUP
npm config get @mycompany:registry

公共包是否命中 PROXY、直连不稳怎么排,见文末参考:国内访问 npmjs 不稳怎么办——勿与本文起步步骤混读成两篇同构教程。

4. 用 /explore 做公开发现

AngusRepo 公开制品与仓库
合作方不愿收令牌时:

  1. 单独建 public-npm(HOSTED),勾选公开(isPublic)。不要公开日常 npm-hosted,也不要公开聚合了私有仓的 GROUP。
  2. 用 Write 令牌(repod_ 或 PAT)只往 public-npm 发正式版(禁 SNAPSHOT)。
  3. 无痕浏览器打开 https://repo.anguskit.com/explore(或 /explore/artifacts 搜包),在详情页复制免认证安装命令,在干净环境执行。

公开门户规则与验收清单见文末参考:私有仓制品怎么公开下载。门户与控制台同一实例;勾选公开后索引可能有数十秒~数分钟延迟。门户顶栏「文档」仍禁用时,外链应指向 AngusKit 文档站,勿承诺门户内文档。

5. 边界与翻车表

现象 常见原因 处理
存储写满 / publish 被拒 用量触顶(以控制台当前租户为准) 清理旧包或旧版本;或改社区自建
publish 401 Token 绑错仓、路径少 /、混用 HTTP 对照接入配置与 _authToken 主机路径
install 仍走 npmjs registry 未指 GROUP,或 lock 锁旧源 npm config list;清 lock 重装
合作方 401 链到了私有仓 用 /explore 详情页生成的匿名命令
无法再建仓 仓数触顶(以控制台为准) 合并 HOSTED/PROXY/GROUP/公开仓用途
依赖混淆 内部名与公共包同名且 GROUP 顺序错误 HOSTED 优先;内部用公司 scope

门禁默认关;Repo 做轻量执法,深度 Finding 在 AngusSecurity——入库被拦见文末参考:制品入库门禁。

FAQ

云服务能发生产包吗?

技术上能发。是否够用看控制台当前租户的用量与限额;生产流量与合规要求高时可改社区自建。

和 Verdaccio / 自建有什么差别?

云服务省掉 Compose 与证书运维;拓扑仍是 HOSTED / PROXY / GROUP。要内网断网构建,见文末参考:离线构建预热。

/explore 能代替 ACL 吗?

不能。公开只解决匿名只读分发;按人授权仍用仓库 ACL + 令牌。

用量触顶后会怎样?

以控制台当前租户显示的用量与限额为准;触顶后 publish / 上传会被拒绝。清理旧包或改社区自建后再试。

小结

  • 云服务可跑通私有 npm 主路径(三仓拓扑)。
  • 开发机一个 GROUP;CI 只写 HOSTED(repod_)。
  • 对外分发:public-npm + /explore,禁 SNAPSHOT。

参考文章

相关文章
|
5天前
|
云安全 人工智能 运维
当攻击全面Agent化,你的安全防御能否跟上AI Speed?
多起客户侧AK泄露事件应急的真实观察
1241 4
|
28天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
9782 32
|
8天前
|
存储 人工智能 安全
千问办公官网入口网页版登录:qwenwork.cn 注册送2000积分、登录送100积分
阿里云千问办公(QwenWork)是AI智能工作平台,支持一句话生成PPT、表格、网页、视频及数据分析。个人免费版送2000积分+每日登录赠100分,含1GB存储、5个发布页;企业版198元/席/月起。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
|
3天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
|
14天前
|
存储 人工智能 并行计算
大模型本地部署终端选型方法论:以 Qwen3.8-27B 为例的四档分层完整流程
本文提出一套大模型本地部署终端选型方法论:定约束、定档位、定框架、定参数四步决策法,配合入门、主力、质量、无损四档分层模型。以 Qwen3.8-27B 实测数据为例,逐环节解读显存、带宽、存储、散热、系统、预算等要素,给出面向不同预算的优选方案、决策自查清单与市场观察框架。文末前瞻 AI 笔记本的 CPU+GPU 与统一内存两条路线,论证四步决策法在新品类上的延续性。
|
5天前
|
Web App开发 人工智能 JavaScript
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA
REA(Reverse Engineer Anything)是近期爆火的开源AI逆向工具,4月发布,1个月内斩获15万+ Star。它让AI Agent无需源码即可分析二进制、APK、JS/Electron、HAR包等17类目标,自动反编译、生成可运行代码,并强制返回带证据与局限的结论。全本地执行,MIT协议,支持Hopper/Ghidra/IDA等引擎,一行命令即可上手。
621 1
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA
|
12天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型深度拆解:原理解读、实战测评与保姆级落地教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为**System One Model(系统一模型)**,对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
927 1
|
9天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型全解析:核心原理拆解,性能实战测评与落地部署教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为System One Model(系统一模型),对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
592 0