nexus 管理npm包

创建仓库

  1. hosted改成allow redeploy,这样才能运行重复上传一个包,不然会报400:bad request

  2. roxy的remote storage设置:当私有仓库和代理仓库缓存包里无请求的包时,就会通过这里配置的地址去服务器下载需要的包,然后再缓存下来。填的是淘宝镜像:https://registry.npm.taobo.org。npm官网的下载有点慢.

  3. name: npm-group,是仓库组的名称。可以包含任何npm的仓库。最终npm install等操作时的地址将会是这个仓库组的地址。
    group中,将刚创建的私有仓库(npm-hosted)和代理仓库(npm-proxy)拖动到右边。有先后顺序的, 从第一个往后请求.

上传npm包

  1. 添加npm用户, 全局配置

    npm adduser --registry=http://192.168.1.51:8081/repository/npm-ltdw/ --scope=@ltdwnpm

    添加完成后 其实就是在 ~/.npmrc 添加一条记录

    1
    1
    2
    3
    4
    5
    6
    registry=https://registry.npmmirror.com/
    home=https://npmmirror.com
    electron_mirror=https://npmmirror.com/mirrors/electron/
    //192.168.1.51:8081/repository/npm-ltdw/:_authToken=NpmToken.283c2660-f0df-3d0c-b0b7-3adff75d814d
    @ltdwnpm:registry=http://192.168.1.51:8081/repository/npm-ltdw/
    <mark> email=zps_sheng@163.com</mark>

    ​ 加--scope的原因是限定推送和拉取的作用域, 不影响registry的正常拉取.

  2. 推送npm包

    npm publish

    package.json 里面的名称必须带上作用域@ltdwnpm

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    {
    "name": "@ltdwnpm/my-utils",
    "version": "1.0.0",
    "description": "A TypeScript utility library for Vue 2 & Vue 3",
    "main": "dist/my-utils.cjs.js",
    "module": "dist/my-utils.es.js",
    "types": "dist/index.d.ts",
    "exports": {
    "require": "./dist/my-utils.cjs.js",
    "import": "./dist/my-utils.es.js"
    },
    "scripts": {
    "build": "vite build"
    },
    "publishConfig": {
    "registry": "http://192.168.1.51:8081/repository/npm-ltdw/"
    },
    "keywords": [
    "typescript",
    "vue",
    "utils",
    "websocket",
    "json"
    ],
    "author": "Your Name",
    "license": "MIT",
    "devDependencies": {
    "typescript": "^5.3.0",
    "vite": "^5.0.0"
    }
    }

    上传完成后在nexus页面可以查看到

下载使用

如果是自己写的库,有两种方式: 本地安装和通过nexus安装.

  1. 本地安装

    找到库的绝对路径进行安装 pnpm add /Users/zhaopeisheng/Documents/地算/code/tslib, 当前的库必须得有dist文件夹.

  2. nexus安装

    因为之前配置过用户, 没有的必须配置 npm adduser –registry=http://192.168.1.51:8081/repository/npm-ltdw/ --scope=@ltdwnpm

    pnpm add @ltdwnpm/my-utils

npm全局配置从nexus拉取包 无作用域

只要配置完npm的 地址后, cnpmpnpm 都是走的同一套代理.

npm config set registry=http://192.168.1.51:8081/repository/npm-group/

设置登录信息

npm adduser --registry=http://192.168.1.51:8081/repository/npm-group/

配置完查看 ~/.npmrc

1
2
3
4
5
6
7
registry=http://192.168.1.51:8081/repository/npm-group/
home=https://npmmirror.com
electron_mirror=https://npmmirror.com/mirrors/electron/
//192.168.1.51:8081/repository/npm-ltdw/:_authToken=NpmToken.283c2660-f0df-3d0c-b0b7-3adff75d814d
@ltdwnpm:registry=http://192.168.1.51:8081/repository/npm-ltdw/
email=zps_sheng@163.com
//192.168.1.51:8081/repository/npm-group/:_authToken=NpmToken.283c2660-f0df-3d0c-b0b7-3adff75d814d

也可以直接修改vim ~/.npmrc registry. 然后再手动添加用户信息.

nexus的 npm-proxy代理地址不要配置错了, 错了拉取进行会报错.


nexus 管理npm包
https://zhaops-hub.github.io/2025/11/13/js/nexus 管理npm包/
作者
赵培胜
发布于
2025年11月13日
许可协议