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 可以…

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

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

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

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

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

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

蓝桥杯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…

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

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

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

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

【小沐学GIS】GDAL库安装和使用(C++、Python)

文章目录 1、简介2、下载和编译&#xff08;C&#xff09;2.1 二进制构建2.1.1 Conda2.1.2 Vcpkg 2.2 源代码构建2.2.1 nmake.opt方式构建2.2.2 generate_vcxproj.bat方式构建 2.3 命令行测试2.3.1 获取S57海图数据 2.4 代码测试2.4.1 读取tiff信息 3、Python3.1 安装3.2 测试3…

零基础入门篇④ 初识Python(注释、编码规范、关键字...)

Python从入门到精通系列专栏面向零基础以及需要进阶的读者倾心打造,9.9元订阅即可享受付费专栏权益,一个专栏带你吃透Python,专栏分为零基础入门篇、模块篇、网络爬虫篇、Web开发篇、办公自动化篇、数据分析篇…学习不断,持续更新,火热订阅中🔥专栏订阅地址 👉Python从…

C语言 | Leetcode C语言题解之第110题平衡二叉树

题目&#xff1a; 题解&#xff1a; int height(struct TreeNode* root) {if (root NULL) {return 0;}int leftHeight height(root->left);int rightHeight height(root->right);if (leftHeight -1 || rightHeight -1 || fabs(leftHeight - rightHeight) > 1) {…

Android硬件渲染环境初始化

Android硬件渲染环境初始化 一.硬件加速渲染的开启1.ThreadedRenderer的初始化2.RenderProxy的创建 二.RenderProxy中组件的初始化1.RenderThread的创建2.CanvasContext的创建3.DrawFrameTask的初始化 三.RenderThread的启动1.RenderThread中组件的初始化2.RenderThread中任务的…

arXiv AI 综述列表(2024.05.20~2024.05.24)

公众号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 每周末更新&#xff0c;完整版进群获取。 Q 群在群文件&#xff0c;VX 群每周末更新。 目录 1. Beyond Traditional Single Object Tracking: A …

基于yolov2深度学习网络的昆虫检测算法matlab仿真,并输出昆虫数量和大小判决

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022A 3.部分核心程序 .......................................................... for i 1:12 % 遍历结…

播兔短剧模板:图鸟UI在前端短剧平台中的应用与实践

一、引言 随着移动互联网的快速发展&#xff0c;短剧平台因其短小精悍、内容丰富的特点&#xff0c;逐渐成为用户休闲娱乐的新宠。为了满足短剧平台对前端技术的需求&#xff0c;图鸟播兔短剧模板应运而生。该模板基于图鸟UI进行开发&#xff0c;采用纯前端技术&#xff0c;支…

【C语言回顾】文件操作

前言1. 文件打开模式2. 示例代码2.1 打开和关闭文件2.2 读写文件2.3 二进制文件操作 结语 #include<GUIQU.h> int main { 上期回顾: 【C语言回顾】动态内存管理 个人主页&#xff1a;C_GUIQU 专栏&#xff1a;【C语言学习】 return 一键三连; } 前言 各位小伙伴大家好&…

分享:怎么才能保证大数据查询的准确性?

随着大数据应用到金融风控领域&#xff0c;大数据越来越重要了&#xff0c;很多朋友在查大数据的时候都会遇到一个问题&#xff0c;那就是自己查询的大数据什么信息都没有&#xff0c;要么就是很少&#xff0c;这是什么原因呢?要怎么才能保证大数据查询的准确性呢?下面小编就…

Java进阶学习笔记3——static修饰成员方法

成员方法的分类&#xff1a; 类方法&#xff1a;有static修饰的成员方法&#xff0c;属于类&#xff1a; 成员方法&#xff1a;无static修饰的成员方法&#xff0c;属于对象。 Student类&#xff1a; package cn.ensource.d2_staticmethod;public class Student {double scor…