当前位置:   article > 正文

npm一篇通

npm一篇通

npm 是什么?

npm,全称Node Package Manager,是随Node.js一起分发的开源包管理系统,也是JavaScript生态中最流行的依赖管理工具。npm可以用于安装、管理和发布JavaScript模块。

对于Java后端开发人员来说,可以将其等同于JavaScript世界的Mavan。

npm具有以下特点和功能:

  1. 包管理:npm可以用来安装、更新和卸载JavaScript模块。它提供了一个命令行界面,使得包的安装和管理变得非常简单和方便。

  2. 包发布:npm允许开发者将自己编写的JavaScript模块发布到npm的注册表中,以便其他人可以方便地安装和使用。开发者可以通过创建一个package.json文件来描述模块的信息和依赖关系,并使用npm publish命令将模块发布到注册表中。

  3. 依赖管理:npm可以自动解析和处理模块之间的依赖关系。当安装一个模块时,npm会自动下载并安装其所依赖的其他模块。开发者可以在package.json文件中指定模块的依赖关系,npm会根据这些信息自动安装所需的模块。

  4. 脚本执行:npm还提供了一个脚本执行的功能,开发者可以在package.json文件中定义一些脚本命令,比如启动服务、执行测试等。通过npm run命令,开发者可以方便地执行这些脚本。

  5. 版本控制:npm使用语义化版本控制(Semantic Versioning)对模块进行版本管理。每个模块都有一个版本号,开发者可以根据版本号来指定模块的依赖关系,确保项目的稳定性和一致性。

  6. 安全性:npm具有一些安全机制,例如通过检查模块的SHA-1哈希值来确保模块的完整性。npm还提供了一些安全工具,用于检测和修复潜在的安全漏洞。

npm的安装

由于npm是Node.js的一部分,因此安装Node.js时,npm通常也会被自动安装。

以下是安装Node.js和npm(如果尚未安装)的基本步骤:

  1. 访问Node.js官方网站

  2. 下载Node.js安装包

    • 在网站上,会看到一个“下载”按钮或类似的链接。点击它,选择适合操作系统的版本(Windows、Mac或Linux)。
    • 下载完成后,会得到一个安装包文件(如.msi、.pkg或.tar.gz等)。
  3. 安装Node.js

    • 双击下载的安装包文件,按照屏幕上的提示进行安装。
    • 安装过程中,可能需要选择安装位置、确认用户权限等。
    • 安装完成后,Node.js和npm通常都会被自动安装在系统上。
  4. 验证安装

    • 打开命令行工具(在Windows上是CMD或PowerShell,在Mac或Linux上是Terminal)。
    • 输入node -v命令,然后按Enter键。如果Node.js已正确安装,该命令将显示安装的Node.js版本号。
    • 输入npm -v命令,然后按Enter键。如果npm已正确安装,该命令将显示安装的npm版本号。

npm的使用

可以使用npm来安装、更新和删除Node.js应用程序中的包了。

  • 使用npm install <package-name>命令来安装一个包
  • 使用npm uninstall <package-name>命令来卸载一个包,

除了安装和删除依赖包之外, npm 的常用的命令有:

  1. 初始化项目
    • npm init:创建一个新的package.json文件,该文件用于存储项目的元数据和依赖信息。执行命令后,它会提示你输入项目名称、版本、描述等信息,或者你可以使用npm init -y来快速生成一个带有默认值的package.json文件。
  2. 安装依赖
    • npm install <package-name>:安装指定名称的npm包作为项目的依赖项。默认情况下,这些依赖项会被添加到package.json文件的dependencies字段中。
    • npm install <package-name> --save-dev:安装指定名称的npm包作为项目的开发依赖项(仅用于开发环境)。这些依赖项会被添加到package.json文件的devDependencies字段中。
    • npm install(无参数):如果package.json文件已经存在,该命令会根据文件中的dependenciesdevDependencies字段安装所有依赖项。
  3. 卸载依赖
    • npm uninstall <package-name>:卸载指定名称的npm包。如果它是dependenciesdevDependencies中的一部分,那么相应的条目也会从package.json文件中删除。
  4. 更新依赖
    • npm update <package-name>:更新指定名称的npm包到最新版本。
    • npm update(无参数):更新package.json文件中列出的所有依赖项到最新版本。
  5. 查看依赖树
    • npm list:列出当前项目中安装的所有包及其依赖关系树。
  6. 运行脚本
    • npm run <script-name>:运行package.json文件中scripts字段下定义的特定脚本。例如,如果package.json中有一个"start": "node app.js"的脚本,那么你可以通过npm start来运行它。
  7. 搜索包
    • npm search <package-name>:搜索npm仓库中指定名称的包。
  8. 查看包信息
    • npminfo <package-name>:查看指定npm包的详细信息。
  9. 全局安装
    • npm install <package-name> -g:全局安装指定名称的npm包。全局安装的包可以在任何地方通过命令行直接使用。
  10. 查看npm配置
    * npm config ls:查看npm的配置信息。
    * npm config set <key> <value>:设置npm的配置项。
  11. 其他
    * npm install -g npm:更新npm到最新版本(尽管通常建议使用包管理器的更新命令,如apt、yum或brew)。
    * npm stop:停止正在运行的Node.js应用程序(但这并不是npm的原生命令,而是通常通过package.json中的脚本来定义)。

高级: 全局安装路径和缓存位置的配置

npm(Node Package Manager)的全局安装路径和缓存位置是npm的两个重要配置选项,它们分别决定了全局安装的npm包存储在哪里以及npm缓存数据的位置。

全局安装路径(Global Install Path)

全局安装路径是指npm全局安装模块时的存储位置。当在命令行中使用带有-g(或--global)参数的npm install命令安装一个npm包时,这个包会被安装到全局安装路径下。全局安装的包通常可以被系统中的任何Node.js项目所使用,而不仅仅是安装它们的那个项目。

如何配置全局安装路径

可以通过npm的配置命令来设置全局安装路径。在命令行中执行以下命令:

npm config set prefix <path>
  • 1

其中<path>是想要设置的全局安装路径。例如,如果想要将全局安装路径设置为/usr/local/npm-global,可以执行:

npm config set prefix /usr/local/npm-global
  • 1

注意:更改全局安装路径后,可能需要更新你的系统PATH环境变量,以便包含新的全局安装路径下的bin目录,从而能够在命令行中直接运行全局安装的命令。

缓存位置(Cache Location)

npm在下载和安装npm包时,会将包的数据缓存到本地,以便在将来能够更快地获取这些包。缓存位置就是这些缓存数据存储的地方。

如何配置缓存位置

同样,你可以通过npm的配置命令来设置缓存位置。在命令行中执行以下命令:

npm config set cache <path>
  • 1

其中<path>是你想要设置的缓存位置。例如,如果你想要将缓存位置设置为/home/user/.npm-cache,你可以执行:

npm config set cache /home/user/.npm-cache
  • 1

注意:更改缓存位置通常不需要更新其他环境变量或配置。

验证配置

可以使用npm config list命令来查看当前的npm配置,包括全局安装路径和缓存位置。这个命令会列出npm的所有配置选项和它们的值。

注意事项

  • 在修改全局安装路径或缓存位置之前,最好先确保你了解这些更改的含义和潜在影响。
  • 如果你在多个项目或机器上共享npm配置,那么可能需要考虑使用.npmrc文件或环境变量来管理这些配置,以便在不同的环境中保持一致。
  • 如果你在修改配置后遇到任何问题,可以尝试使用npm config delete <key>命令来删除特定的配置选项,并恢复到npm的默认设置。其中<key>是你要删除的配置选项的名称,例如prefixcache


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/531146
推荐阅读
相关标签
  

闽ICP备14008679号