npm介绍、常用命令详解以及什么是全局目录

目录

  • npm介绍、常用命令详解以及什么是全局目录
    • 一、介绍
      • npm的主要功能
      • npm仓库
      • npm的配置
      • npm的版本控制
    • 二、命令
      • 1. `npm init`: 初始化一个新的Node.js项目,创建`package.json`文件。`package.json`是一个描述项目信息和依赖关系的文件。
      • 2. `npm install <package_name>`: 安装一个Node.js模块。这将把模块安装到`node_modules`目录下,并添加到`package.json`的依赖项中。
      • 3. `npm install`: 安装`package.json`中列出的所有依赖项。
      • 4. `npm install -g <package_name>`: 全局安装一个Node.js模块。这使得模块可以在任何地方使用。
      • 5. `npm uninstall <package_name>`: 卸载一个已安装的Node.js模块。
      • 6. `npm update`: 更新所有已安装的模块到最新版本。
      • 7. `npm outdated`: 列出所有过时的已安装模块。
      • 8. `npm list`: 列出项目中安装的所有模块。
      • 9. `npm run <script>`: 运行`package.json`中的一个脚本。你可以在`scripts`字段中定义脚本。
      • 10. `npm install --save-dev <package_name>`: 以开发依赖的形式安装一个Node.js模块。这些依赖项仅在开发和测试时需要,而在生产环境中不需要。
      • 11. `npm config`: 用于查看和修改npm的配置。可以通过`npm config list`查看当前配置,通过`npm config set <key> <value>`设置配置,通过`npm config delete <key>`删除配置。
      • 12. `npm link`: 创建一个当前模块的符号链接。这在本地开发和测试模块时非常有用,因为它允许您在不发布模块的情况下,在其他项目中使用它。
      • 13. `npm search <keyword>`: 搜索与关键词相关的Node.js模块。
      • 14. `npm view <package_name> [field]`: 查看一个Node.js模块的详细信息。可以通过指定字段来查看特定信息。
      • 15. `npm cache`: 管理npm的缓存。可以通过`npm cache clean --force`清空缓存,通过`npm cache verify`验证缓存的完整性。
      • 16. `npm login`和`npm logout`: 登录和登出npm。登录后,您可以发布自己的模块或修改已发布模块的信息。
      • 17. `npm publish`和`npm unpublish`: 发布和取消发布Node.js模块。这需要您已经登录npm。
      • 18. npm install参数有哪些,详细解释,用案例解释。输出案例结果并解释
        • (1) `-g` 或 `--global`:全局安装模块。将模块安装到全局目录,使其在任何地方都可以使用。
        • (2) `--save` 或 `-S`:将模块保存为项目的依赖。这是默认行为,不需要显式添加该参数。
        • (3) `--save-dev` 或 `-D`:将模块保存为项目的开发依赖。开发依赖仅在开发和测试时需要,生产环境中不需要。
        • (4) `--no-save`:不将模块保存到`package.json`文件。安装模块,但不修改`package.json`。
        • (5) `--save-exact` 或 `-E`:精确安装模块的指定版本。将确切的版本号添加到`package.json`文件,而不是使用版本范围。
        • (6) `--save-optional` 或 `-O`:将模块保存为项目的可选依赖。可选依赖项是在安装失败时不会导致整个安装过程失败的依赖项。
        • (7)`--dry-run`:模拟安装过程。不实际执行安装,但显示将要执行的操作。
        • (8) `--legacy-peer-deps`:忽略对等依赖项的版本冲突。在某些情况下,可能会遇到对等依赖项版本冲突的问题。使用`--legacy-peer-deps`参数可以忽略这些冲突,继续安装。
        • (9)安装`react-scripts`模块,即使存在对等依赖项版本冲突,也继续执行安装。
        • (10)强制安装`lodash`模块,忽略已存在的缓存和已安装的模块。
          • - `--production`:仅安装项目的生产依赖项。跳过安装`devDependencies`字段中的模块。
          • - 仅安装`package.json`文件中`dependencies`字段中列出的模块,跳过`devDependencies`中的模块。
    • 三、什么是全局目录?
      • 1. 这里的全局目录是什么
      • 2. 如何设置全局目录
        • (1) 打开终端或命令提示符。
        • (2) 运行以下命令来查看当前的全局目录:
        • (3) 若要设置新的全局目录,请运行以下命令,将`<new_path>`替换为你希望将全局目录设置为的新路径:
        • (4) 更新系统环境变量以包含新的全局目录。这样,当你全局安装模块时,命令行工具就可以找到它们。
        • (5) 保存更改并重启终端或命令提示符。

npm介绍、常用命令详解以及什么是全局目录

在这里插入图片描述

一、介绍

npm(Node Package Manager)是一个随Node.js一起安装的包管理工具,由Isaac Z. Schlueter(通常简称为izs)领导开发。它是一个命令行工具,用于安装、管理和发布Node.js程序包。npm允许开发者将代码分割成不同的模块,并共享到npm的在线仓库(npm registry),这样其他开发者就可以方便地使用这些模块。

npm的主要功能

  1. 安装包:使用npm install命令可以安装单个包或整个依赖树。
  2. 发布包:开发者可以通过npm publish命令将自己的包发布到npm仓库。
  3. 更新包:使用npm update可以更新已安装的包到最新版本。
  4. 搜索包:通过npm search可以查找特定的包或浏览npm仓库中的包。
  5. 查看包信息:使用npm view命令可以查看包的详细信息,如版本、描述和维护者等。
  6. 全局命令:npm还提供了一系列全局命令,例如npm install -g用于全局安装包,使之可以在任何项目中使用。
  7. 依赖管理:npm不仅管理包的安装,还负责解析依赖关系,确保项目所依赖的包及其依赖的包都是正确的版本。

npm仓库

截至2023,npm仓库是世界上最庞大的软件注册表,拥有超过800,000个包。任何人都可以创建账户并发布自己的包。npm仓库的包分为公开的和私有的。公开的包可以被任何人访问,而私有的包则需要特定权限才能访问。

npm的配置

npm提供了一个package.json文件来定义项目依赖和配置信息。这个文件是Node.js项目的入口点,它描述了项目需要哪些外部包以及如何使用它们。

npm的版本控制

npm使用语义版本控制(Semantic Versioning),每个版本的包都会按照主版本号.次版本号.修订号的格式来定义。这样的版本号系统有助于清晰地表达包的更改内容和兼容性。
npm作为Node.js生态系统的重要组成部分,极大地推动了JavaScript单页应用(SPA)和服务器端应用程序的发展。通过提供方便的模块共享和管理机制,它让开发者能够更加高效地开发和维护大型应用程序。。以下是一些常用的npm命令和示例:

二、命令

1. npm init: 初始化一个新的Node.js项目,创建package.json文件。package.json是一个描述项目信息和依赖关系的文件。

示例:


mkdir my_project
cd my_project
npm init

2. npm install <package_name>: 安装一个Node.js模块。这将把模块安装到node_modules目录下,并添加到package.json的依赖项中。

示例:


npm install express

3. npm install: 安装package.json中列出的所有依赖项。

示例:


cd my_project
npm install

4. npm install -g <package_name>: 全局安装一个Node.js模块。这使得模块可以在任何地方使用。

示例:


npm install -g nodemon

5. npm uninstall <package_name>: 卸载一个已安装的Node.js模块。

示例:


npm uninstall express

6. npm update: 更新所有已安装的模块到最新版本。

示例:


cd my_project
npm update

7. npm outdated: 列出所有过时的已安装模块。

示例:


cd my_project
npm outdated

8. npm list: 列出项目中安装的所有模块。

示例:


cd my_project
npm list

9. npm run <script>: 运行package.json中的一个脚本。你可以在scripts字段中定义脚本。

示例:


// package.json中的"scripts"字段
"scripts": {"start": "node app.js","test": "mocha"
}// 运行脚本
npm run start
npm run test

10. npm install --save-dev <package_name>: 以开发依赖的形式安装一个Node.js模块。这些依赖项仅在开发和测试时需要,而在生产环境中不需要。

示例:


npm install --save-dev mocha

11. npm config: 用于查看和修改npm的配置。可以通过npm config list查看当前配置,通过npm config set <key> <value>设置配置,通过npm config delete <key>删除配置。

示例:


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

12. npm link: 创建一个当前模块的符号链接。这在本地开发和测试模块时非常有用,因为它允许您在不发布模块的情况下,在其他项目中使用它。

示例:


cd my_module
npm link
cd ../my_project
npm link my_module

13. npm search <keyword>: 搜索与关键词相关的Node.js模块。

示例:


npm search express

14. npm view <package_name> [field]: 查看一个Node.js模块的详细信息。可以通过指定字段来查看特定信息。

示例:


npm view express
npm view express version

15. npm cache: 管理npm的缓存。可以通过npm cache clean --force清空缓存,通过npm cache verify验证缓存的完整性。

示例:


npm cache clean --force
npm cache verify

16. npm loginnpm logout: 登录和登出npm。登录后,您可以发布自己的模块或修改已发布模块的信息。

示例:


npm login
npm logout

17. npm publishnpm unpublish: 发布和取消发布Node.js模块。这需要您已经登录npm。

示例:


cd my_module
npm publish
npm unpublish my_module@1.0.0

18. npm install参数有哪些,详细解释,用案例解释。输出案例结果并解释

  • npm install命令有很多可选参数,可以用来修改安装行为。以下是一些常用的参数及其解释和示例:
(1) -g--global:全局安装模块。将模块安装到全局目录,使其在任何地方都可以使用。

示例:


npm install -g express

安装express模块到全局目录,之后可以在任何项目中使用它。

(2) --save-S:将模块保存为项目的依赖。这是默认行为,不需要显式添加该参数。

示例:


npm install lodash

lodash模块安装为项目的依赖。结果会将lodash添加到package.json文件的dependencies字段中。

(3) --save-dev-D:将模块保存为项目的开发依赖。开发依赖仅在开发和测试时需要,生产环境中不需要。

示例:


npm install -D mocha

mocha模块安装为项目的开发依赖。结果会将mocha添加到package.json文件的devDependencies字段中。

(4) --no-save:不将模块保存到package.json文件。安装模块,但不修改package.json

示例:


npm install moment --no-save

安装moment模块,但不将其添加到package.json文件。

(5) --save-exact-E:精确安装模块的指定版本。将确切的版本号添加到package.json文件,而不是使用版本范围。

示例:


npm install express@4.17.1 --save-exact

安装express模块的4.17.1版本,并将精确的版本号添加到package.json文件。

(6) --save-optional-O:将模块保存为项目的可选依赖。可选依赖项是在安装失败时不会导致整个安装过程失败的依赖项。

示例:


npm install -O fsevents

fsevents模块安装为项目的可选依赖。结果会将fsevents添加到package.json文件的optionalDependencies字段中。

(7)--dry-run:模拟安装过程。不实际执行安装,但显示将要执行的操作。

示例:


npm install express --dry-run

显示安装express模块的过程,但实际上不执行安装。这有助于了解将要进行的操作,而不会对项目产生实际影响。

(8) --legacy-peer-deps:忽略对等依赖项的版本冲突。在某些情况下,可能会遇到对等依赖项版本冲突的问题。使用--legacy-peer-deps参数可以忽略这些冲突,继续安装。

示例:


npm install react-scripts --legacy-peer-deps
(9)安装react-scripts模块,即使存在对等依赖项版本冲突,也继续执行安装。

--force-f:强制安装模块。如果已经存在缓存或安装的模块,忽略它们,强制重新安装。

示例:


npm install lodash --force
(10)强制安装lodash模块,忽略已存在的缓存和已安装的模块。
- --production:仅安装项目的生产依赖项。跳过安装devDependencies字段中的模块。

示例:


npm install --production
- 仅安装package.json文件中dependencies字段中列出的模块,跳过devDependencies中的模块。

--ignore-scripts:安装模块时,不运行package.json中的脚本。某些模块在安装过程中可能会运行脚本,这个参数可以阻止这些脚本的执行。

示例:


npm install express --ignore-scripts

安装express模块,但不执行任何与之相关的脚本。

了解这些npm install参数可以帮助您在不同情况下灵活地安装和管理Node.js模块。根据项目需求和实际情况选择合适的参数来优化安装过程。

三、什么是全局目录?

  • -g 或 --global:全局安装模块。将模块安装到全局目录,使其在任何地方都可以使用。

1. 这里的全局目录是什么

-g 或 --global:全局安装模块。将模块安装到全局目录,使其在任何地方都可以使用。全局目录是什么

  • 全局目录是一个特殊的目录,用于存储全局安装的Node.js模块。当你使用-g--global参数安装模块时,模块将被安装到全局目录。全局安装的模块可以在任何地方使用,而不仅仅局限于某个特定的项目目录。

全局目录的位置因操作系统和Node.js的安装方式而异。要查找全局目录的位置,可以运行以下命令:


npm root -g

这将返回全局node_modules目录的路径。以下是一些常见操作系统上的全局目录示例:

  • Windows:全局目录通常位于C:\Users\<用户名>\AppData\Roaming\npm\node_modules
  • macOS/Linux:全局目录通常位于/usr/local/lib/node_modules/usr/lib/node_modules

请注意,根据你的系统设置和Node.js的安装方式,这些路径可能会有所不同。通过运行npm root -g命令,你可以获得准确的全局目录路径。

全局安装的模块主要用于命令行工具或可在多个项目中共享的公共库。在使用全局模块时,不需要为每个项目单独安装,而是可以直接在命令行中使用这些模块的命令或在Node.js代码中引用它们。

2. 如何设置全局目录

  • 设置Node.js全局目录可以通过修改npm的配置来实现。以下是如何设置全局目录的步骤:
(1) 打开终端或命令提示符。
(2) 运行以下命令来查看当前的全局目录:

npm config get prefix
(3) 若要设置新的全局目录,请运行以下命令,将<new_path>替换为你希望将全局目录设置为的新路径:

npm config set prefix <new_path>

示例:


npm config set prefix /Users/yourusername/.npm-global
(4) 更新系统环境变量以包含新的全局目录。这样,当你全局安装模块时,命令行工具就可以找到它们。
  • Windows:编辑系统环境变量,将新的全局目录添加到Path变量中。
  • macOS/Linux:在你的~/.bashrc(或相应的配置文件,如~/.zshrc)中添加以下行:

export PATH=<new_path>/bin:$PATH

<new_path>替换为你在第3步中设置的全局目录。

(5) 保存更改并重启终端或命令提示符。

通过这些步骤,你可以更改Node.js全局目录。在执行全局安装时,模块将安装到新的全局目录,并且命令行工具将能够找到这些模块。

请注意,在修改全局目录时,请确保具有所需的权限,以便在新目录中安装模块。在某些情况下,可能需要使用管理员权限执行命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/14803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode算法题:42. 接雨水(Java)

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3…

基于vue3速学angular

因为工作原因&#xff0c;需要接手新的项目&#xff0c;新的项目是angular框架的&#xff0c;自学下和vue3的区别&#xff0c;写篇博客记录下&#xff1a; 参考&#xff1a;https://zhuanlan.zhihu.com/p/546843290?utm_id0 1.结构上&#xff1a; vue3:一个vue文件&#xff…

python:pycharm虚拟解释器报错环境位置目录为空

目录 解释器分控制台解释器 和 pycharm解释器 控制台解释器切换&#xff1a; pycharm解释器 解释器分控制台解释器 和 pycharm解释器 控制台解释器切换&#xff1a; 切换到解释器下 激活解释器 查看解释器 where python 激活成功 这时在控制台使用python xxx.py 可以…

卷积神经网络和误差反向传播如何一起工作

用更简单的方式来理解卷积神经网络&#xff08;CNN&#xff09;和误差反向传播法&#xff08;一种梯度下降的应用方式&#xff09;是如何一起工作的&#xff0c;这次我们用一个找宝藏的游戏来比喻&#xff1a; 游戏背景&#xff1a;寻宝图的秘密 想象你有一张藏宝图&#xff…

​​​【收录 Hello 算法】10.1 二分查找

目录 10.1 二分查找 10.1.1 区间表示方法 10.1.2 优点与局限性 10.1 二分查找 二分查找&#xff08;binary search&#xff09;是一种基于分治策略的高效搜索算法。它利用数据的有序性&#xff0c;每轮缩小一半搜索范围&#xff0c;直至找到目标元素或搜索区间为空…

C++中的类型转换

文章目录 C中的四种类型转换static_castreinterpret_castconst_castdynamic_cast RTTI C中的四种类型转换 C语言中已经存在类型转换了&#xff0c;为什么C还要提出自己风格的类型转换&#xff1f; C风格的转换格式很简单&#xff0c;但是有不少缺点的&#xff1a; 转换的可视…

​​​【收录 Hello 算法】第 10 章 搜索

目录 第 10 章 搜索 本章内容 第 10 章 搜索 搜索是一场未知的冒险&#xff0c;我们或许需要走遍神秘空间的每个角落&#xff0c;又或许可以快速锁定目标。 在这场寻觅之旅中&#xff0c;每一次探索都可能得到一个未曾料想的答案。 本章内容 10.1 二分查找10.2 二…

【如何检查 ONNX 模型是否正确?】onnx.checker.check_model 用法详解

以下是对 onnx.checker.check_model 函数文档的翻译&#xff1a; onnx.checker.check_model 检查模型的一致性&#xff0c;即模型在结构、格式和配置方面的正确性和完整性。 如果模型的 ir_version 设置不正确或高于检查器的 ir_version&#xff0c;或者模型在 metadata_pro…

Java序列化解密:技巧、陷阱与最佳实践

1. 概述Java序列化的概念与应用场景 1.1 序列化简介 在Java中&#xff0c;序列化机制允许我们将一个对象状态转换为一串字节序列&#xff0c;并可在稍后再将这串字节序列恢复为对象。这一特性极大地方便了对象的持久化处理与网络传输。 1.2 为何需要序列化 序列化主要用于两…

恶劣天候激光雷达点云模拟方法论文整理

恶劣天候点云模拟方法论文整理 模拟雨天点云&#xff1a;【AAAI2024】模拟雪天点云&#xff1a;【CVPR 2022 oral】模拟雾天点云&#xff1a;【ICCV2021】模拟点云恶劣天候的散射现象&#xff1a;【Arxiv 2021】模拟积水地面的水花飞溅点云&#xff1a;【RAL2022】 模拟雨天点云…

C#面:如何在.Net(C# )中如何取消一个窗体的关闭

可以通过重写窗体的Closing事件来取消窗体的关闭 private void Form1_Closing(object sender, CancelEventArgs e) {// 取消窗体的关闭e.Cancel true; } 在窗体的构造函数中&#xff0c;可以将Closing事件与上述方法进行关联&#xff1a; public Form1() {InitializeCompon…

蓝桥杯Web开发【模拟题三】15届

1.创意广告牌 在"绮幻山谷"的历史和"梦幻海湾"的繁华交汇之处&#xff0c;一块创意广告牌傲然矗立。它以木质纹理的背景勾勒出古朴氛围&#xff0c;上方倾斜的牌子写着"绮幻山谷的风吹到了梦幻海湾"&#xff0c;瞬间串联了过去与现在&#xff0…

EPIC免费领取《骑士精神2》 IGN9分神作骑士精神2限时免费领

EPIC免费领取《骑士精神2》 IGN9分神作骑士精神2限时免费领 最近Epic一直为玩家们送出各种游戏&#xff0c;从《龙腾世纪审判》到《模拟农场22》&#xff0c;而就在今天&#xff0c;epic又为玩家们送出了IGN评分9分高分的骑士精神2.这款游戏&#xff0c;该游戏是一款由Tripwir…

软考之信息系统管理:数据结构和算法

数据结构和算法 数据结构&#xff1a;数据的特性和数据之间存在的关系&#xff1b; 数据结构常用名词和术语&#xff1a; 数据是人们利用文字&#xff0c;数字等符号对现实世界的事物及其活动所做的描述数据元素简称元素&#xff0c;是数据的基本单位&#xff0c;通常作为一个整…

考研408操作系统篇-操作系统的基本概念1

操作系统的基本概念 操作系统的目标与应用环境有关。 在查询系统中人机交互性&#xff1b;应用于工业控制、武器控制以及多媒体环境下的OS&#xff0c;要求其具有实时性&#xff1b; 对于微机上的配置的OS&#xff0c;则更看重的是其使用的方便性 操作系统的目标 方便性&…

阿赵UE引擎C++编程学习笔记——常用容器TArray、TMap和TSet

大家好&#xff0c;我是阿赵   这次来熟悉一下UE引擎在写C时的一些特定的容器。 主要有三种&#xff0c;分别是TArray、TMap和TSet 一、 TArray TArray是标准的数组&#xff0c;通过下标来访问内容。数组里面的元素是可以重复的。   以下是TArray的一些用法举例&#xff1…

vue连接mqtt实现收发消息组件超级详细

基本概念&#xff1a; MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种基于发布/订阅模式的轻量级消息传输协议&#xff0c;专为低带宽、高延迟或不稳定的网络环境设计。以下是MQTT实现收发消息的基本原理&#xff1a; 客户端-服务器模型&#xff1a…

快速排序详解——多种实现方式

快速排序 快速排序是一种交换排序&#xff0c;是基于二叉树结构的交换排序方法&#xff0c;基本思想如下&#xff1a; 任取待排序元素序列中的某元素作为基准值&#xff0c;按照该排序码将待排序集合分割成两子序列&#xff0c;左子序列中所有元素均小于基准值&#xff0c;右子…

亚信安慧AntDB:可靠的数据处理和存储工具

AntDB数据库具有高性能、高可用性和高扩展性等诸多优点&#xff0c;能够高效应对庞大数据存储和处理需求&#xff0c;同时保障数据的安全和稳定。不论是企业级业务系统还是政府信息管理平台&#xff0c;AntDB都能够轻松胜任&#xff0c;展现出其强大的适应能力和可靠性。 其强…

数据量较小的表是否有必要添加索引问题分析

目录 前言一、分析前准备1.1、准备测试表和数据1.2、插入测试数据1.3、测试环境说明 二、具体业务分析2.1、单次查询耗时分析2.2、无索引并发查询服务器CPU占用率分析2.3、添加索引并发查询服务器CPU占用率分析 三、总结 前言 在一次节日活动我们系统访问量到达了平时的两倍&am…