首页 前端知识 npm 常用命令详解

npm 常用命令详解

2024-06-16 01:06:14 前端知识 前端哥 785 596 我要收藏

npm 常用命令详解

  • NPM是什么?
  • npm 常用命令详解
    • 查看本地npm的版本
    • 查看npm帮助命令
    • 升级npm版本
    • 要查看npm指定命令的帮助
    • 初始化一个新的Node.js项目并创建一个package.json文件
    • 初始化(跳过向导)
    • 安装Node.js包(或模块)及其依赖项
    • 查看当前目录下已安装的 node 包
    • 查看全局已经安装过的 node 包
    • 更新指定包
    • 卸载指定包
    • 查看配置信息
    • 查看远程npm上指定包的所有版本信息
    • 查看当前包的安装路径
    • 查看全局的包的安装路径
    • 查看本地安装的指定包及版本信息,没有显示 empty
    • 查看全局安装的指定包及版本信息,没有显示 empty
    • 修改包下载源
    • 安装cnpm
    • 自动启动浏览器打开包的主页
    • 查看包的错误跟踪页面
    • 查看包的代码地址
    • 查看包的详细信息
    • 搜索npm仓库
    • 查看过时的依赖
    • 执行脚本
    • 清理、安装依赖项
    • 删除重复的依赖项
    • 扫描项目,来查找所有依赖项中存在的漏洞
    • 自动安装所有易受攻击包的补丁版本
    • 测试本地包

npm 常用命令详解

NPM是什么?


是JavaScript运行时环境Node.js的默认包管理器。

NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。



npm 常用命令详解


查看本地npm的版本


npm -v 是一个npm命令,用于显示已安装的Node Package Manager(npm)的版本信息。

当你在命令行中输入npm -v并按下回车后,系统会返回一个版本号,表示你当前使用的npm的版本。这可以帮助你确认npm是否已经正确安装,以及你正在使用的是哪个版本的npm。

除了npm -v,你还可以使用npm --version来达到相同的效果。这两个命令是等价的,都可以用来查看npm的版本信息。

npm -v

查看npm帮助命令


npm --help 是一个npm命令,用于显示npm命令的帮助文档和使用说明12。

当你在命令行中输入npm --help并按下回车后,npm会输出一份详细的帮助文档,其中包含了npm的所有命令列表、命令的简要描述以及如何使用这些命令的说明。这份文档对于了解npm的功能和用法非常有帮助,特别是当你对某个命令不太熟悉或者需要查找某个特定功能时。

除了npm --help,你还可以使用npm help命令来达到相同的效果。这两个命令是等价的,都可以用来查看npm的帮助文档。如果你对某个具体的命令有疑问,可以通过npm help 来查看该命令的详细帮助文档,例如npm help install将显示关于install命令的详细帮助信息。

npm --help

升级npm版本


npm install npm -g 是一个命令,用于全局安装或更新npm(Node Package Manager)本身。
这里的参数有特定的含义:

  • npm install: 这是npm的命令,用于安装一个或多个包。
  • npm: 这是要安装的包的名称,在这个上下文中,我们正在安装或更新npm自身。
  • npm@: 指定要安装的npm的版本号。你可以替换为你想要安装的特定版本号,例如npm@6.14.12。
  • -g: 这是一个全局安装的标志。当使用这个标志时,npm会被安装到系统的全局目录中,这样你就可以在任何地方使用它,而不仅仅是在当前项目中。

当你运行npm install npm -g命令时,npm会从npm的注册表(registry)下载最新版本的npm包,并将其安装到系统的全局目录中。这通常用于更新你系统上的npm版本,以获取最新的功能、修复和安全性更新。

在某些情况下,你可能需要管理员权限来全局安装npm。在这种情况下,你可能需要在命令前加上sudo(在Unix或Linux系统上)或以管理员身份运行命令提示符(在Windows上)。

请注意,全局安装npm通常不是必要的,除非你确实需要更新系统上的npm版本或出于某种特定原因需要这样做。在大多数情况下,你可以通过更新你的项目中的npm版本来管理依赖项和工具。

# 升级到最新版本
npm install npm -g
# 升级到指定版本,<version>表示最新的版本
npm install npm@<version> -g
# 如果你想全局安装npm的6.14.12版本
npm install npm@6.14.12 -g

要查看npm指定命令的帮助


npm help 是一个用于查看npm命令详细帮助信息的命令。在这个命令中, 应该被替换为你想要了解帮助的特定npm命令的名称。例如,如果你想要了解install命令的帮助信息,你应该运行 npm help install。

当你执行这个命令时,npm会显示关于指定命令的详细文档,这通常包括命令的描述、用法、选项、参数、示例以及其他相关信息。这些信息对于理解和正确使用npm命令非常有帮助,特别是对于那些不太熟悉npm的新手或者需要深入了解某个命令的特定用法的高级用户。

请注意,npm help 命令显示的是npm命令的内置帮助文档,这些文档通常是非常详细和全面的。如果你无法找到你需要的帮助信息,或者想要了解更多关于npm和Node.js生态系统的信息,你还可以查阅npm的官方文档、社区论坛和其他在线资源。

npm help <command>
# 其中<command>是你要查看帮助的命令名称

初始化一个新的Node.js项目并创建一个package.json文件


npm init 是一个npm命令,用于初始化一个新的Node.js项目并创建一个package.json文件。package.json文件是一个标准的JSON格式文件,它包含了项目的元数据和配置信息,比如项目的名称、版本、描述、依赖项等。

当你运行npm init命令时,npm会引导你通过一系列的问题,帮助你设置package.json文件的基本字段。这些问题可能包括项目的名称、版本、描述、入口文件、测试命令等。你可以根据提示回答问题,或者直接提供一个-y或–yes标志来自动接受默认设置。

完成初始化后,你的项目目录下将生成一个package.json文件,其中包含了你所回答的信息。这个文件对于项目的管理和分发非常重要,因为它让其他开发者了解你的项目,并且定义了项目的依赖项和脚本。

除了初始化一个新的项目,npm init还可以用于更新现有的package.json文件。你可以通过运行npm init并提供特定的字段和值来更新package.json中的特定部分,而不需要手动编辑文件。

总之,npm init是Node.js项目的一个重要步骤,它帮助开发者快速设置和配置一个新的项目,并为项目的依赖管理和分发提供了基础。

npm init

初始化(跳过向导)


npm init --yes 是一个命令,用于快速初始化一个新的Node.js项目并自动生成一个package.json文件。这里的参数和选项的意义如下:

  • npm init: npm init命令用于初始化一个新的Node.js项目。它会引导你通过一系列的问题,以便为项目创建一个package.json文件。package.json文件是一个标准文件,它包含有关项目的元数据和配置信息。
  • –yes 或 -y: 这个选项会跳过npm init的交互式问题,并自动使用默认值来生成package.json文件。这在你想要快速创建一个新的项目,并且不需要自定义package.json中的值时非常有用。

当你运行npm init --yes时,npm会使用默认设置快速创建一个package.json文件,这个文件通常会包含以下内容:

{
  "name": "your-project-name",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

在这个文件中,name字段通常会被设置为当前目录的名称,version字段被设置为1.0.0,main字段指向项目的入口文件(通常是index.js),scripts字段包含一些默认的npm脚本命令(例如test),以及其他一些默认的元数据。

使用npm init --yes可以节省时间,特别是当你不需要自定义package.json文件的内容时。然而,如果你想要为你的项目提供特定的元数据或配置,你可能需要运行npm init而不带–yes选项,以便手动回答每个问题。

npm init --yes

npm init -y

安装Node.js包(或模块)及其依赖项


npm install

npm install命令可以接受多个参数和选项,例如:

  • <包名>:指定要安装的包的名称express。可以同时安装多个包,只需在命令中依次列出它们的名称即可。

  • –save或-S:将安装的包添加到package.json文件的dependencies字段中。这表示该包是项目生产环境所需的依赖项。

npm install express --save
  • –save-dev或-D:将安装的包添加到package.json文件的devDependencies字段中。这表示该包是项目开发环境所需的依赖项,通常用于开发工具和测试框架等。
npm install express -D
  • –global或-g:将包安装到全局环境中,而不是当前项目的node_modules目录中。这样可以在任何位置运行该包提供的命令或工具。
npm install express --global

查看当前目录下已安装的 node 包


npm list(或npm ls)是一个npm命令,用于列出当前项目中安装的所有依赖包及其版本信息。

当你执行npm list时,npm会递归地列出当前项目及其所有依赖包的信息,形成一个树状结构。每个包都会显示其名称和版本号。

–depth=搜索的深度是一个可选参数,用于限制搜索的深度。默认情况下,npm会列出所有层级的依赖包。但是,如果你只想查看指定深度的依赖包,可以使用–depth参数来指定深度。例如,npm list --depth=1将只列出直接依赖的包,而不包括它们的子依赖。

这个命令对于了解项目的依赖关系以及调试依赖问题非常有用。通过查看依赖树,你可以确定哪些包被安装,以及它们之间的依赖关系。

npm list(npm ls --depth=搜索的深度)

查看全局已经安装过的 node 包


npm list -g 是一个npm命令,用于列出全局安装的所有Node.js模块及其版本信息。

全局安装的模块通常是那些在整个系统中都可以访问的工具或库。执行npm list -g时,npm将列出全局安装的所有模块,并显示它们的版本信息。这可以帮助开发者了解在整个系统中可用的Node.js模块。

例如,要查看全局安装的所有模块,可以在命令行中运行npm list -g。这将输出全局安装的模块及其版本信息,让开发者了解在整个系统中可用的Node.js模块。

npm list -g

更新指定包


npm update 包名 是一个npm命令,用于更新项目中指定的包到其最新版本。

当你运行这个命令时,npm会检查远程npm仓库中指定包的最新版本,并将其更新到本地项目中。这通常涉及到下载新版本的包文件,并替换掉项目中旧版本的文件。

例如,如果你想要更新名为lodash的包到其最新版本,你可以运行 npm update lodash。这将检查lodash的最新版本,并将其更新到项目中。

请注意,npm update命令只会更新指定的包,而不会更新该包的依赖项。如果你想要更新一个包及其所有依赖项到最新版本,你可以使用npm update命令加上–depth选项,例如npm update --depth 9999,这将递归地更新所有依赖项到最新版本。

此外,如果你想要在更新包时更新package.json文件中对应版本号的字段,你可以加上–save或-S选项。例如,npm update lodash --save将会更新package.json中lodash的版本号。

npm update 包名

卸载指定包


npm uninstall 包名 是一个npm命令,用于从项目中卸载指定的包。

当你不再需要某个包时,可以使用这个命令将其从项目中移除。执行该命令后,npm会删除该包相关的所有文件,并将其从package.json文件中的依赖列表中移除(如果使用了–save或-S选项)。

例如,如果你想要卸载名为lodash的包,你可以运行 npm uninstall lodash。这将删除lodash包及其相关文件,并从package.json文件中移除对它的依赖。

请注意,如果你只是运行npm uninstall 包名而没有使用–save或-S选项,那么该包虽然会从项目中删除,但仍然会保留在package.json文件的依赖列表中。如果你想要完全移除对该包的依赖,请务必使用–save或-S选项。

npm uninstall 包名

查看配置信息


npm config list 是一个npm命令,用于查看当前npm的配置信息。

这个命令会显示npm的所有配置选项和它们的当前值。配置选项包括代理设置、认证信息、注册表设置等。这些信息对于了解npm的行为和如何修改它非常有用。

运行npm config list会打印出所有的配置选项和它们的值。你可以查看这些信息来了解npm的当前配置状态,或者找到特定配置选项的值。

如果你只对某个特定的配置选项感兴趣,你可以使用npm config get 选项名命令来查看该选项的值。例如,要查看代理设置,你可以运行npm config get proxy。

请注意,某些配置选项可能包含敏感信息,如认证凭据。在共享或发布配置信息时要小心处理这些信息。

npm config list

查看远程npm上指定包的所有版本信息


npm info 指定包名 是一个npm命令,用于查看远程npm上指定包的所有版本信息。

这个命令会显示指定包的详细信息,包括所有可用的版本、每个版本的发布日期、包的描述、关键词、作者、许可证等。这对于了解包的版本历史和选择适合的版本非常有用。

例如,如果你想要查看express包的所有版本信息,你可以运行 npm info express。这将显示express包的所有版本列表,以及每个版本的详细信息。

请注意,这个命令只能查看远程npm上的包信息,它不会显示本地已安装的包的信息。如果你想要查看本地已安装的包的信息,你可以使用 npm view 包名 命令。

npm info 指定包名

查看当前包的安装路径


npm root 是一个npm命令,用于显示当前包的安装路径。

当你使用npm安装一个包时,它通常会被安装到一个特定的目录中。npm root命令会告诉你这个目录的位置,这对于需要手动管理或访问已安装包的情况非常有用。

例如,运行npm root可能会输出类似于/path/to/your/project/node_modules的路径,这取决于你的项目和npm的配置。

请注意,这个命令只会告诉你当前包的安装路径,它不会列出具体的包或包的内容。如果你想要查看某个特定包的详细信息,你可以使用npm view 包名命令。此外,如果你想要查看全局安装的包的路径,你可以使用npm root -g命令。

npm root

查看全局的包的安装路径


npm root -g 是一个npm命令,用于查看全局安装的包的安装路径。

当你使用npm全局安装一个包时(使用-g标志),这个包通常会被安装到一个特定的目录中。npm root -g命令会告诉你这个全局安装目录的位置。这对于需要手动管理或访问全局安装的包的情况非常有用。

例如,运行npm root -g可能会输出类似于/usr/local/lib/node_modules的路径,这取决于你的系统和npm的配置。

请注意,这个命令只会告诉你全局安装的包被安装在哪里,它不会列出具体的包或包的内容。如果你想要查看某个特定全局安装包的详细信息,你可以使用npm view 包名命令。

npm root -g

查看本地安装的指定包及版本信息,没有显示 empty


npm ls 包名 是一个npm命令,用于列出指定包及其依赖项的信息。这个命令会显示当前项目中已经安装的指定包及其所有依赖项,以及它们的版本信息。

在这个命令中:

  • npm ls 是“list”的缩写,用于列出已安装的包和依赖项。
  • 包名 是你想要查看的包的名称。如果你不提供包名,该命令将列出当前项目中所有已安装的包和它们的依赖项。

例如,如果你想要查看项目中已经安装的express包及其依赖项,你可以运行 npm ls express。这将显示express包以及它所依赖的其他包的信息,包括它们的名称和版本号。

请注意,这个命令只会显示当前项目中已安装的包和依赖项。如果你想要查看全局安装的包,你可以使用 npm list -g 命令。此外,如果你想要查看更详细的包信息,你可以使用 npm view 包名 命令。

npm ls 包名

查看全局安装的指定包及版本信息,没有显示 empty


npm ls 包名 -g 是一个npm命令,用于列出全局安装的包及其依赖项1。

在这个命令中:

  • npm ls 是“list”的缩写,用于列出已安装的包。
  • 包名 是可选的,如果你指定了一个包名,该命令将只列出该包及其依赖项。如果没有指定包名,该命令将列出所有全局安装的包及其依赖项。
  • -g 是“global”的缩写,表示这个命令应该在全局环境中运行,即列出全局安装的包,而不是当前项目中的包。

例如,如果你想要列出全局安装的express包及其依赖项,你可以运行npm ls express -g。这将显示express包以及它所依赖的其他包的信息。

请注意,你需要确保已经安装了npm,并且具有足够的权限来访问全局安装的包。此外,如果你的系统中没有全局安装任何包,该命令可能不会返回任何结果。

npm ls 包名 -g

修改包下载源


npm config set registry 下载源 是一个命令,用于设置npm的默认注册表(registry)为指定的下载源。npm注册表是一个存储npm包的地方,当你使用npm install命令安装包时,npm会从注册表中下载这些包。

通过运行npm config set registry 下载源,你可以更改npm使用的默认注册表,从而改变它从哪里下载包。这对于希望使用镜像源(如淘宝NPM镜像)或其他私有注册表来加速下载或出于其他原因的开发者来说是非常有用的。

在命令中,下载源应该被替换为你想要设置为默认注册表的URL。例如,如果你想要将默认注册表设置为淘宝NPM镜像,你可以运行:

npm config set registry https://registry.npm.taobao.org

这条命令会告诉npm,当你执行npm install或其他需要下载包的命令时,它应该从https://registry.npm.taobao.org这个地址下载包,而不是从官方的npm注册表https://registry.npmjs.org/下载。

请注意,这个设置是全局的,会影响你机器上所有使用npm的项目。如果你只想为某个特定项目更改注册表,你需要在那个项目的根目录下运行npm config set registry 下载源命令,或者使用–scope选项来指定作用域。

此外,这个设置是临时的,它只会在当前会话中生效。如果你想要让这个设置永久生效,你需要将配置信息保存到npm的配置文件中。通常,配置文件位于用户主目录下的.npmrc文件中(在Windows上可能位于%USERPROFILE%.npmrc)。

要查看当前设置的注册表,你可以运行:

npm config get registry

这将会显示当前配置的默认注册表URL。

npm config set registry 下载源

安装cnpm


npm install -g cnpm --registry=下载源 是一个命令,用于全局安装 cnpm(中国npm镜像)并指定一个自定义的下载源(registry)。这个命令通常用于在中国大陆地区加速npm包的下载,因为有时由于网络原因,直接从npm官方仓库下载可能会比较慢。

让我们详细解释这个命令的每一部分:

  • npm install: 这是npm的一个基本命令,用于安装包。
  • -g: 这是一个全局安装的标志,意味着cnpm会被安装到系统的全局路径中,这样你就可以在任何地方使用cnpm命令。
  • cnpm: 这是你要安装的包的名称。cnpm是一个npm的替代品,它使用淘宝的npm镜像来加速包的下载。
  • –registry=下载源: 这个选项允许你指定一个自定义的npm仓库(registry)来下载包。下载源应该被替换为你想要使用的npm镜像或私有仓库的URL。

例如,如果你想要使用淘宝的npm镜像作为你的下载源,你可以运行:

npm install -g cnpm --registry=https://registry.npm.taobao.org

这条命令会从淘宝的npm镜像下载并安装cnpm。安装完成后,你可以使用cnpm命令来替代npm命令,以便利用淘宝镜像加速你的包下载。

请注意,使用第三方镜像源(如淘宝npm镜像)虽然可以加速下载,但有时可能会存在包版本不同步的问题。因此,如果你发现某个包在镜像源中不可用或版本过旧,你可能需要临时切换回官方的npm仓库来安装或更新那个包。

npm install -g cnpm --registry=下载源

自动启动浏览器打开包的主页


npm home 包名 是一个npm命令,用于在Web浏览器中打开指定包的官方文档首页。

这个命令会尝试猜测指定包的官方文档首页的URL,并使用系统默认的浏览器打开它。如果没有提供包名,它将在当前文件夹中搜索package.json文件,并使用其中的name属性作为包名。

例如,如果你想要打开react包的官方文档首页,你可以在命令行中运行npm home react。

请注意,你需要确保已经安装了npm,并且你的计算机可以访问Web浏览器和npm注册表,以便使用这个命令。此外,如果该包没有配置官方文档首页的URL,则该命令可能无法正常工作。

npm home 包名

查看包的错误跟踪页面


npm bugs 包名 是一个npm命令,用于在Web浏览器中打开指定包的错误跟踪页面或支持电子邮件的mailto URL。

这个命令尝试猜测包的错误跟踪器URL或支持电子邮件的mailto URL的可能位置,然后尝试使用系统默认的浏览器打开它。如果没有提供包名,它将在当前文件夹中搜索package.json文件,并使用其中的name属性作为包名。

例如,如果你想要打开express包的错误跟踪页面,你可以在命令行中运行npm bugs express。

请注意,你需要确保已经安装了npm,并且你的计算机可以访问Web浏览器和npm注册表,以便使用这个命令。此外,如果该包没有配置错误跟踪器URL或支持电子邮件的mailto URL,则该命令可能无法正常工作。

npm bugs 包名

查看包的代码地址


npm repo 包名 是一个npm命令,用于打开指定包的仓库页面。这个命令会在默认的网页浏览器中打开该包在npm注册表中的仓库页面,让你可以查看该包的源代码、提交记录、问题跟踪等信息。

例如,如果你想要查看express包的仓库页面,你可以在命令行中运行npm repo express。

请注意,你需要确保已经安装了npm,并且你的计算机可以访问npm注册表和默认的网页浏览器,以便使用这个命令。此外,如果该包没有在npm注册表中注册或者没有公开的仓库页面,则该命令可能无法正常工作。

npm repo 包名

查看包的详细信息


npm info 包名 是一个npm命令,用于查看指定包的详细信息。

这个命令会显示关于指定包的各种信息,包括包的版本、描述、关键词、作者、依赖项、许可证等。这对于了解包的来源、版本历史和兼容性等信息非常有用。

例如,如果你想要查看名为express的包的详细信息,你可以在命令行中运行npm info express。

请注意,你需要确保已经安装了npm,并且你的计算机可以访问npm注册表,以便使用这个命令。

npm info 包名

搜索npm仓库


npm search 是一个用于在npm注册表中搜索包的命令。你可以通过提供一个字符串或正则表达式来搜索相关的包。

例如,如果你想搜索与“express”相关的包,你可以运行:

npm search express

这将列出与“express”关键词相关的包,包括它们的名称、版本、描述和作者等信息。

如果你想使用正则表达式来搜索,你可以使用 --registry 或 -r 选项,后跟你的正则表达式。但是,请注意,在npm的文档中,对于npm search命令,并没有明确提到支持正则表达式搜索。实际上,npm search通常仅支持简单的文本搜索,不支持复杂的正则表达式匹配。

如果你想在npm注册表中执行更复杂的搜索,可能需要使用npm的API或者其他第三方服务。

这里是一个使用正则表达式的错误示例(因为npm search不支持正则表达式):

npm search --registry=/express.*/

上述命令将不会按预期工作,因为npm search不支持–registry选项用于指定正则表达式。

总的来说,npm search主要支持简单的文本搜索,如果你需要更复杂的搜索功能,可能需要考虑其他方法或工具。


查看过时的依赖


npm outdated是一个npm命令,用于检查当前项目中的npm包是否有新的版本可用。

运行npm outdated命令会列出当前项目中已安装的包的版本信息,并显示出最新的可用版本。如果某个包的当前版本已经过时,npm outdated会在版本信息中用红色标记出来,提醒开发者更新该包。这个命令可以帮助开发者及时了解项目中的包是否需要更新,以便保持项目的安全性和稳定性。

此外,npm outdated命令还支持通过包名来检查特定包的版本情况,例如npm outdated 。如果某个包没有新版本,则该命令不会有任何输出。

npm outdated

执行脚本


npm run dev 和 npm run build 是通常在npm项目中看到的命令,它们通常与项目的package.json文件中的scripts字段关联。这些命令用于执行特定的任务,如启动开发服务器或构建生产版本的项目。

  1. npm run dev:
    这个命令通常用于启动项目的开发服务器。它可能包含了一些用于热更新(Hot Module Replacement)、代码转译(如Babel)、错误处理和其他开发辅助功能的配置。在package.json文件中,它可能类似于这样:
"scripts": {
  "dev": "webpack serve --open"
}

上面的例子中,dev脚本使用webpack serve命令启动一个Webpack开发服务器,并且使用–open选项自动在默认浏览器中打开应用程序。

  1. npm run build:
    这个命令通常用于构建项目的生产版本。它可能包括压缩代码、提取CSS、优化图片和其他准备项目部署到生产环境的步骤。在package.json文件中,它可能类似于这样:
"scripts": {
  "build": "webpack --mode production"
}

上面的例子中,build脚本使用webpack命令构建项目,并通过–mode production选项告诉Webpack使用生产模式来构建,这通常包括代码压缩和分割等优化。

这些命令的具体实现取决于项目的package.json文件中scripts字段的配置,以及项目中使用的构建工具(如Webpack、Parcel、Rollup等)的配置。

npm run dev/build

清理、安装依赖项


npm ci是一个用于安装项目依赖的命令,它根据package-lock.json或npm-shrinkwrap.json文件中记录的依赖信息进行安装,确保安装的依赖版本与记录中的版本一致。

与npm install相比,npm ci更加严格和可靠,因为它不会考虑package.json文件中定义的依赖版本范围,只会按照锁文件中的版本进行安装。此外,npm ci在安装之前会删除node_modules目录,确保从一个干净的状态开始安装,避免了因依赖包版本冲突导致安装失败的问题。

需要注意的是,npm ci命令只适用于生产环境,因为它依赖于锁文件来确保依赖的一致性。在开发环境中,通常使用npm install命令来安装依赖,因为它会考虑package.json文件中定义的依赖版本范围,并允许安装最新版本的依赖包。

npm ci

删除重复的依赖项


npm dedupe或npm ddp命令用于重新整理本地包的依赖关系,使一些公共依赖走向依赖树的更高层级,方便更多包共同使用,减少依赖的重复引入。

当使用npm包时,可能会遇到多个包依赖同一个包的情况,这会导致该依赖包被重复安装,造成空间的浪费。使用npm dedupe命令可以解决这个问题,它会检查本地包树,并尝试简化整体结构,将依赖项移动到树的上层,以便多个依赖包可以更有效地共享它们。这样可以减少重复依赖,并优化项目的依赖结构。

npm dedupe/ddp

扫描项目,来查找所有依赖项中存在的漏洞


npm audit是npm 6新增的一个命令,用于分析项目的依赖关系,并查找已知的安全漏洞。

该命令会在项目中更新或下载新的依赖包之后自动运行,如果在项目中使用了具有已知安全问题的依赖,就会收到官方的警告通知。npm audit需要package.json和package-lock.json文件,通过分析package-lock.json文件,扫描项目中的依赖包是否包含漏洞,并提供漏洞的详细信息以及建议的补救措施。

使用npm audit时,如果发现任何漏洞,可以根据提示信息进行相应的处理,如升级依赖包版本或应用补丁等,以提高项目的安全性。

npm audit

自动安装所有易受攻击包的补丁版本


npm audit fix是npm的一个命令,用于自动修复项目依赖包中的安全漏洞。

这个命令会审查项目中的依赖包,检查是否存在已知的安全漏洞,如果存在,它会尝试自动安装相关的补丁来修复这些漏洞。但是,自动修复并不总是可行的,因为某些补丁可能与项目的其他部分不兼容。在这种情况下,npm audit fix可能会失败,无法修复所有的漏洞。

为了解决这个问题,npm提供了–force选项,即npm audit fix --force。这个命令会强制安装补丁版本,即使存在不兼容的情况也会进行更新,从而确保项目依赖包中的安全漏洞能够被快速修复。但是,使用–force选项需要谨慎,因为它可能会导致项目的其他部分出现问题。建议在测试环境中先试运行该命令,以确保它不会对项目的稳定性造成影响。

npm audit fix

测试本地包


npm link是一种把包链接到包文件夹的方式,可以在不发布npm模块的情况下,调试该模块,并且修改模块后会实时生效,不需要通过npm install进行安装。

npm link的工作原理是直接把包模拟成安装后的状态,就像平时通过npm install安装过一样,可以直接使用。

使用npm link的方法如下:
如果模块和项目在同一目录下,可以在项目目录下运行

npm link ../module

如果模块和项目不在同一目录下,需要先去到模块目录,运行npm link,然后在项目目录下运行npm link 包名。

npm link/npm link 模块名
npm unlink 模块名




👨‍💻博主Python老吕说:如果您觉得本文有帮助,辛苦您🙏帮忙点赞、收藏、评论,您的举手之劳将对我提供了无限的写作动力!🤞


🔥精品付费专栏:(暂时免费,尽快订阅、收藏哦)🔥
《跟老吕学Python编程》
《跟老吕学Python编程·附录资料》

🌐前端:
《跟老吕学HTML》
《XHTML》
《CSS》
《JavaScript》
《Vue》

💻后端:
《跟老吕学C语言》
《C++》
《Java》
《R》
《Ruby》
《PHP》
《Go》
《C#》
《Swift》
《Python》

💾数据库:
《跟老吕学Oracle语言》
《MYSQL》
《SQL》
《PostgreSQL》
《MongoDB》


转载请注明出处或者链接地址:https://www.qianduange.cn//article/12264.html
评论
发布的文章

前端——12.表单标签

2024-06-21 00:06:57

src、href和url含义及区别

2024-06-21 00:06:56

CSS知识点大全

2024-06-21 00:06:16

JS垃圾回收机制(GC)

2024-06-21 00:06:03

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!