如何在 Node.js 中使用 npm 安装指定目录?

2025年3月19日 | 阅读 3 分钟

在使用Node.js时,通常通过 npm(Node 包管理器)从注册表或实际的本地文件系统路径安装包。有时,您可能希望不从 npm 注册表安装包,而是从系统中已有的目录安装包。这在您希望在本地测试包然后进行部署,或者在使用本地依赖项时非常有用。

语法

它具有以下语法:

  • <path_to_directory>: 包所在目录的相对或绝对路径。

参数

  • path_to_directory: 这是您要安装的包所在的本地目录路径。它可以是:
    1. 绝对路径(Linux 上的 /home/user/project 或 LinuxC 盘上的 C:\Users\user\project): 用于在网络上排列的本地驱动器之间编译 java 程序(例如,此 PC 的 R: 驱动器或 Windows 上的 D:\Users\user\project)。
    2. 相对路径:./my-package 或../my-package。

npm 安装选项

  • --save: 它会将包安装到 package.json 文件中的 dependencies 部分。
  • --save-dev: 包将保存在 devDependencies 下。
  • --global: 它会将包添加到所有用户库。

示例及输出

示例 1:安装本地包

假设您有一个位于 my-local-package 目录中的本地包,并且您想在您的项目中安装它。

输出

 
npm notice created a lockfile as package-lock.json. You should commit this file.
+ my-local-package@1.0.0
added 1 package in 2s   

示例 2:从绝对路径安装

输出

 
+ my-local-package@1.0.0
added 1 package in 1s   

示例 3:安装包并保存到 dependencies

输出

 
+ my-local-package@1.0.0
added 1 package and updated 1 package in 1s   

在这种情况下,该依赖项将被添加到 package.json 的 dependencies 部分。

优点

  • 本地测试:这意味着您在将本地包发布到 npm 注册表之前对其进行测试,这很有用,因为您可以确定一切都能正常工作。
  • 更快的迭代:在开发中,处理本地包甚至直接在项目中实现更改会相对更方便。
  • 离线安装:与注册表包相比,您可以进行安装,因为包是本地的,这意味着您不需要互联网连接。
  • 自定义修改:您可以处理本地包,并在您的主项目中查看该包的集成,而无需上传每次更改。

用例

  • 开发本地包:当您在本地生成多个相关包并希望在一个包的作用域中测试另一个包时。
  • 私有/内部项目:用于组织或公司内部使用的包,但无需发布到公共 npm 注册表。
  • 自定义修改:用于更改包以使功能集适应项目的需求,而无需部署到已接受的格式。

故障模式与影响分析

  • 缺少 package.json:确保此本地包具有适当的 package.json 来配置依赖于 Node 模块的包。没有此文件,npm 将无法将其识别为包,这就是我们需要它的主要原因。
  • 路径问题:请检查在从目录安装时是否使用了正确的相对路径或绝对路径。
  • 缓存问题:如果本地包没有显示更改,请使用 npm cache clean -force。

最佳实践

  • 版本控制:始终有必要在版本控制(如 Git)中监控对本地包的修改。
  • 使用相对路径:对于本地依赖项,请始终使用相对路径而不是绝对路径。这可确保团队中的其他成员和持续集成工具能够正确解析依赖项。

结论

总之,通过运行 npm install <directory> 命令,您可以从 Node.js 中的特定目录安装包。这在本地开发、发布包之前测试包或使用公司包时非常有用。此操作有助于加快您的工作速度,尤其是在您希望填充本地文件夹而不是使用 npm 注册表的情况下。

Node.js 中使用 npm 从指定目录安装包的功能对于更快的本地开发和各种形式的测试、迭代等非常有价值。方便存储一些私有包或在发布到 npm 之前尝试更改。