• Node.js Video Tutorials

Node.js - NPM



NPM - Node Package Manager 的缩写,指的是用于安装 Node.js 包、执行版本管理和 Node.js 包依赖管理的命令行工具。它还提供了一个 Node.js 包/模块的在线存储库,可以在 https://npmjs.net.cn/ 上搜索。此链接还提供了 NPM 命令的详细文档。

如果您使用的是较新的 Node.js 版本(0.6.0 或更高版本),则 NPM 工具包含在所有操作系统平台捆绑包的 Node.js 二进制文件中。在命令终端中检查 NPM 的版本 -

PS C:\Users\mlath> npm -v
10.1.0

如果您使用的是较旧版本的 NPM,则需要使用以下命令将其更新到最新版本。

npm install npm -g

请注意,YARN 和 PNPM 工具也可用作 NPM 的替代方案。YARN 可以更快地安装包,并在不同机器或安全的离线环境中一致地管理依赖项。PNPM(Performant NPM)是另一个快速且节省磁盘空间的 Node.js 包管理器。

如果您的 Node.js 应用程序依赖于一个或多个外部包,则必须从 NPM 存储库中安装它们。NPM 包以两种模式安装:本地或全局。默认情况下,包以本地模式安装。

本地安装包

安装任何 Node.js 模块都有一个简单的语法 -

npm install <Module Name>

例如,以下命令用于安装一个名为 express 的著名 Node.js Web 框架模块 -

npm install express

现在您可以在您的 js 文件中按如下方式使用此模块 -

var express = require('express');

包的本地模式安装是指将包安装到 Node 应用程序所在的文件夹中的 node_modules 目录中。本地部署的包可以通过 require() 方法访问。在安装命令的末尾使用 --save 将依赖项条目添加到应用程序的 package.json 中。

package.json 文件是一个 JSON 文件,用于管理 Node.js 项目中的依赖项。它包含有关项目的信息,例如其名称、版本和依赖项。package.json 文件由 npm 包管理器用于安装和管理依赖项。

package.json 文件通常位于 Node.js 项目的根目录中。可以通过运行 npm init 命令来创建它。

为新的 Node.js 项目创建一个新文件夹,并在其中运行 pnm init 命令 -

PS D:\nodejs\newnodeapp> npm init

此实用程序将引导您完成创建 package.json 文件的过程。

It only covers the most common items, and tries to guess sensible defaults.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.

package name: (newnodeapp) newnodeapp
version: (1.0.0)
description: Test Node.js App
entry point: (index.js)
test command:
git repository:
keywords: test, nodejs
author: mvl
license: (ISC)

即将写入 D:\nodejs\NewNodeApp\package.json -

{
   "name": "newnodeapp",
   "version": "1.0.0",
   "description": "Test Node.js App",
   "main": "index.js",
   "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
   },
   "keywords": [
      "test",
      "nodejs"
   ],
   "author": "mvl",
   "license": "ISC"
}

现在,如果我们将 express 包本地安装到此项目中,请使用以下命令,它还会将依赖项条目添加到 package.json 中。

D:\nodejs\newnodeapp>npm install express –save

此文件夹中的 package.json 文件将更新为 -

{
   "name": "newnodeapp",
   "version": "1.0.0",
   "description": "Test Node.js App",
   "main": "index.js",
   "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
   },
   "keywords": [
      "test",
      "nodejs"
   ],
   "author": "mvl",
   "license": "ISC",
   "dependencies": {
      "express": "^4.18.2"
   }
}

express 包代码将放置在包文件夹的 node_modules 子文件夹中。

如果您已将所有项目依赖项都放在 package.json 文件中,则只需运行 npm install(前面没有任何包名称)即可立即安装所有依赖项。

您也可以在 npm install 命令中使用 -save-dev 标志将包添加为 DevDepndency。

  • --save-dev 安装并将条目添加到 package.json 文件的 devDependencies 中

  • --no-save 安装但不将条目添加到 package.json 文件的 dependencies 中

  • --save-optional 安装并将条目添加到 package.json 文件的 optionalDependencies 中

  • --no-optional 将阻止安装可选依赖项

还可以使用标志的简写 -

  • -S: --save

  • -D: --save-dev

  • -O: --save-optional

devDependencies 和 dependencies 之间的区别在于,前者包含开发工具(例如测试库),而后者则与生产环境中的应用程序捆绑在一起。

全局安装包

全局安装的包/依赖项存储在系统目录中。此类依赖项可以在任何 Node.js 的 CLI(命令行界面)功能中使用,但不能直接在 Node 应用程序中使用 require() 导入。现在让我们尝试使用全局安装来安装 express 模块。

npm install express -g

这将产生类似的结果,但模块将被全局安装。在 Linux 上,全局包放置在 /usr/lib/node_modules 文件夹中,而在 Windows 上,路径为 C:\Users\your-username\AppData\Roaming\npm\node_modules。

更新包

要更新 Node.js 项目中本地安装的包,请在项目项目文件夹中打开命令提示符或终端,然后编写以下更新命令。

npm update <package name>

以下命令将现有 ExpressJS 模块更新到最新版本。

PS D:\nodejs\newnodeapp> npm update express

up to date, audited 63 packages in 2s

11 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

卸载包

要从项目的依赖项中卸载包,请使用以下命令从项目中删除本地包。

npm uninstall <package name>

以下命令将从应用程序中卸载 ExpressJS。

PS D:\nodejs\newnodeapp> npm uninstall express
removed 62 packages, and audited 1 package in 603ms
found 0 vulnerabilities

包条目也将从 package.json 文件中的依赖项列表中删除。

广告