npm publish怎样发布到本地的3种办法:link ,verdaccio, 软链接

发布于:2025-02-11 ⋅ 阅读:(55) ⋅ 点赞:(0)

要将一个 npm 包发布到 本地 而不是直接发布到 npm Registry,可以有以下几种方式:


1. 使用 npm link(开发时调试本地包)

npm link 是一种常用方法,用于在本地创建包的全局符号链接,从而在项目中使用这个包。

步骤:
  1. 进入包目录(假设你的包目录是 my-package):

    cd my-package
    
  2. 运行 npm link 命令

    npm link
    
    • 这会将该包链接到全局的 node_modules 目录下。
  3. 进入需要使用这个包的项目目录

    cd my-project
    
  4. 在项目中创建一个符号链接到这个本地包

    npm link my-package
    
    • 这会将项目的 node_modules/my-package 指向本地包的目录。
  5. 测试包的功能

    • 现在你可以在项目中像使用正常 npm 包一样使用 my-package 了。
注意:
  • 适合在开发期间使用,生产环境不推荐。
  • 你修改了 my-package 的源码后,只需要重新编译(如果有)即可,链接会自动更新。

2. 使用 npm pack(本地压缩并安装)

npm pack 会将包打包成一个 .tgz 文件,然后你可以在本地安装这个文件。

步骤:
  1. 进入包目录

    cd my-package
    
  2. 打包包

    npm pack
    
    • 这会在当前目录生成一个 .tgz 文件(例如:my-package-1.0.0.tgz)。
  3. 安装这个本地包到另一个项目

    • 进入需要使用这个包的项目目录:
      cd my-project
      
    • 运行安装命令:
      npm install ../my-package/my-package-1.0.0.tgz
      
    • 现在这个包已经被安装到 node_modules 中,可以像普通 npm 包一样使用。
注意:
  • 如果你修改了 my-package,需要重新运行 npm pack 打包并重新安装。

3. 设置本地 Registry(完全模拟 npm 发布流程)

如果你想模拟完整的 npm 发布流程(但只针对本地环境),可以使用一个本地的 npm Registry,比如 verdaccio

步骤:
  1. 安装 verdaccio

    npm install -g verdaccio
    
  2. 启动本地 Registry

    verdaccio
    
    • 默认情况下,verdaccio 会在 http://localhost:4873 上运行。
  3. 配置 npm 使用本地 Registry

    • 运行以下命令,将 npm 的发布和安装指向本地 Registry:
      npm set registry http://localhost:4873/
      
  4. 登录到本地 Registry

    • 使用以下命令登录本地 Registry:
      npm adduser --registry http://localhost:4873/
      
    • 按提示输入用户名、密码、邮箱。
  5. 发布包到本地 Registry

    • 在包目录下运行:
      npm publish --registry http://localhost:4873/
      
  6. 在项目中安装这个本地包

    • 进入项目目录:
      cd my-project
      
    • 运行以下命令安装包:
      npm install my-package --registry http://localhost:4873/
      
  7. 恢复默认 Registry(如果需要发布到全局 npm):

    npm set registry https://registry.npmjs.org/
    

4. 直接引用本地目录

如果只是简单使用包而不需要完整的发布,可以直接通过文件系统引用本地目录。

步骤:
  1. 在项目中安装本地目录

    • 进入需要使用这个包的项目:
      cd my-project
      
    • 安装本地包目录:
      npm install ../my-package
      
    • 或者使用 file: 指定路径:
      npm install file:../my-package
      
  2. 测试包的功能

    • 现在你可以像使用普通 npm 包一样使用这个包。
注意:
  • 如果你修改了 my-package,需要重新安装(或者使用 npm link 来避免重复安装)。

总结

发布到本地可以根据需求选择不同方法:

  • 开发调试时:使用 npm link
  • 模拟真实发布:使用 verdaccio 搭建本地 Registry。
  • 简单本地测试:使用 npm pack 或直接引用目录 (npm install ../my-package)。