我应该如何设置专用npm注册表?

我应该如何设置专用npm注册表?,npm,nexus,artifactory,Npm,Nexus,Artifactory,对于一个公司项目,我想使用Artifactory或Nexus建立一个私有的npm注册中心,这样包就可以与所有人共享,而无需在上发布 在maven中,我将设置一个发布和快照回购。为了解决这个问题,我会把他们和maven central的代理放在一起 npm的设置是什么样子的?npm的semver能够区分发布和预发布,但我认为将它们路由到不同的注册中心可能是一项相当困难的任务 另一方面,您可能希望能够控制推送到“发布注册表”的内容,从而实现相应的权限。为此,您必须使用“预发布”和“发布”注册表。如果

对于一个公司项目,我想使用Artifactory或Nexus建立一个私有的npm注册中心,这样包就可以与所有人共享,而无需在上发布

在maven中,我将设置一个发布和快照回购。为了解决这个问题,我会把他们和maven central的代理放在一起

npm的设置是什么样子的?npm的semver能够区分发布和预发布,但我认为将它们路由到不同的注册中心可能是一项相当困难的任务


另一方面,您可能希望能够控制推送到“发布注册表”的内容,从而实现相应的权限。为此,您必须使用“预发布”和“发布”注册表。

如果我理解正确,您希望能够拥有NPM的“发布”和“快照”存储库,就像您现在拥有的Maven一样

如果确实是这样,那么您可以在Artifactory中设置2个存储库,一个用于“预发布”,另一个用于“发布”,并在一个虚拟NPM存储库下聚合这两个存储库。正如您所提到的,您可以对每个存储库拥有不同的权限集,因此可以控制谁可以部署/解析依赖项,并且还可以相互移动工件


希望这能回答您的问题。

关于如何在Nexus存储库中执行此操作,如果您确实需要,我建议您设置:


npm发布(npm托管)
npm预发布(npm托管)
npm所有(npm组)

使组包含两个成员(这样您就可以使用一个URL进行安装),然后在构建脚本或用于发布到Nexus存储库的任何内容中,只需使用--registry标志指定要发布到的存储库,类似于“发布”的内容:

npm发布--注册表http://localhost:8081/repository/npm-发布/

这是一个“预发布”:

npm发布--注册表http://localhost:8081/repository/npm-预发布/

如果您需要更多帮助,以下是Nexus Repository 3.x的npm文档:

根据此链接

您可以使用
Verdaccio
。按照以下步骤操作:

  • 下载的“当前”版本

  • 安装Python。以
    管理员的身份打开Powershell,然后运行

    npmi-g--生产windows构建工具

    然后跑

    npm i-g节点gyp

  • 获取
    Python.exe
    文件路径

    验证Python的安装位置,通常它存储在以下文件夹中

    C:\Users\user name.windows构建工具\python27

    复制路径+\python.exe

  • 添加新的
    环境变量

    打开
    文件资源管理器
    ,右键单击
    计算机
    ,然后选择
    属性

    选择
    高级系统设置
    ,然后选择
    环境变量

    如果
    PYTHON
    未列在
    System Variables
    下,请选择
    New

    PYTHON
    添加为变量名,将步骤3中的
    保存路径添加为变量值->选择
    OK

  • 安装/配置Verdaccio

  • 打开
    命令提示符
    并运行
    npm i-g verdaccio
  • 验证
    Verdaccio
    的安装是否成功
  • 打开
    new命令提示符
    并运行
    verdaccio
    ,您将看到以下输出
  • 打开您喜爱的浏览器至
    localhost:4873

    更多信息:


    希望有用。

    你好,阿里尔,谢谢你的回答。我的问题是,这是否是与私人npm注册中心合作的常见方式/最佳实践。或者你会建议一种不同的方法吗?就个人而言,我认为你可以使用一个回购协议,这不像npmjs.org有两个单独的回购协议用于预发行和发行。我给出的示例主要是,如果您真的想这样做(出于某种安全需要),请看这里。