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.rhkb.cn/news/330983.html

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

相关文章

Linux 内核之 mmap 内存映射的原理及源码解析

文章目录 前言一、简介1. mmap 是什么&#xff1f;2. Linux 进程虚拟内存空间 二、mmap 内存映射1. mmap 内存映射的实现过程2. mmap 内存映射流程2.1 mmap 系统调用函数2.2 ksys_mmap_pgoff 函数2.3 vm_mmap_pgoff 函数2.4 do_mmap_pgoff 函数2.5 do_mmap 函数2.6 get_unmappe…

ElasticSearch操作之重置密码脚本

ElasticSearch操作之重置密码脚本 #!/bin/bash # 使用样例 ./ES密码重置.sh 旧密码 新密码# 输入旧密码 es_old_password$1# 设置新的密码变量 es_password$2# 正确响应 es_reponse{"acknowledged":true}# 检查Elasticsearch是否在运行 if pgrep -f elasticsearch &g…

DNF手游攻略:角色培养与技能搭配!游戏辅助!

角色培养和技能搭配是《地下城与勇士》中提升战斗力的关键环节。每个职业都有独特的技能和发展路线&#xff0c;合理的属性加点和技能搭配可以最大化角色的潜力&#xff0c;帮助玩家在各种战斗中立于不败之地。接下来&#xff0c;我们将探讨如何有效地培养角色并搭配技能。 角色…

Leetcode | 5-21| 每日一题

2769. 找出最大的可达成数字 考点: 暴力 数学式子计算 思维 题解 通过式子推导: 第一想法是二分确定区间在区间内进行查找是否符合条件的, 本题最关键的便是 条件确定 , 第二种方法: 一般是通过数学公式推导的,这种题目我称为数学式编程题 代码 条件判断式 class Solution { …

基于SSM的“医院门诊管理系统”的设计与实现(源码+数据库+文档)

基于SSM的“医院门诊管理系统”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能模块图 医院门诊管理系统首页页面图 用户登录界面图 管…

【数据结构】------C语言实现二叉树

作者主页&#xff1a;作者主页 数据结构专栏&#xff1a;数据结构 创作时间 &#xff1a;2024年5月20日 一、二叉树的定义 二叉树(Binary Tree) 是由n个结点构成的有限集(n≥0)&#xff0c;n0时为空树&#xff0c;n>0时为非空树。 对于非空树&#xff1a; 有且仅有一个根…

用这8种方法在海外媒体推广发稿平台上获得突破-华媒舍

在今天的数字时代&#xff0c;海外媒体推广发稿平台已经成为了许多机构和个人宣传和推广的有效途径。如何在这些平台上获得突破并吸引更多的关注是一个关键问题。本文将介绍8种方法&#xff0c;帮助您在海外媒体推广发稿平台上实现突破。 1. 确定目标受众 在开始使用海外媒体推…

基于STM32实现数字示波器

目录 引言环境准备数字示波器基础代码示例&#xff1a;实现数字示波器 ADC采样数据处理显示波形用户界面应用场景&#xff1a;信号分析与电子实验问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌入式系统中使用C语言实现数字示波器&#xff0c;包括如何…

Kali Linux安装Xrdp远程桌面工具结合内网穿透实现远程访问Kali桌面

文章目录 前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于&#xff0c;它允许用户从远程位置访问Kali系统&#xff0c;而无需直接物理访…

【maven与tomcat配置】如何正确配置maven及tomcat环境变量及运行Java项目 (附图文说明及下载包)

maven及tomcat配置详解 &#x1f354;涉及知识&#x1f964;写在前面&#x1f367;一、maven和tomcat是啥&#xff1f;&#x1f367;二、maven环境变量配置2.1获取maven包2.2创建本地仓库及修改配置A&#xff0e;校验是否安装javaB&#xff0e;创建本地maven存放仓库C&#xff…

【代码随想录】二分查找算法总结篇

目录 前言二分查找例题一例题二例题三例题四 前言 本篇文章记录了代码随想录二分查找算法的总结笔记&#xff0c;下面我们一起来学习吧&#xff01;&#xff01; 二分查找 关于二分查找算法&#xff0c;我在之前的这篇博客里面做了非常多的分析&#xff0c;但是后面做题做着…

【ETAS CP AUTOSAR工具链】ARXML文件详解

本篇文章首先对ARXML这种文件格式做了一个概述&#xff0c;叙述了这种标签语言的基本语法&#xff08;如果您用HTML做过网页&#xff0c;那么这种格式您一定不会陌生&#xff09;&#xff0c;然后对ARXML文件都会包含的一些基本信息做了详细的解读&#xff0c;最后基于使用ISOL…

Java使用apache.poi生成word

加油&#xff0c;打工人&#xff01; 工作需求&#xff0c;将现有的word模板有段落和表格&#xff0c;从数据库中查出数据并填充&#xff0c;word里面也有表格数据&#xff0c;需要将excel表格数据单独处理&#xff0c;然后插入到生成好的word文档中。 下面代码模拟从数据库查出…

力扣刷题---3146. 两个字符串的排列差

题目描述 给你两个字符串 s 和 t&#xff0c;每个字符串中的字符都不重复&#xff0c;且 t 是 s 的一个排列。 排列差 定义为 s 和 t 中每个字符在两个字符串中位置的绝对差值之和。 返回 s 和 t 之间的 排列差 。 示例 1&#xff1a; 输入&#xff1a;s “abc”, t “b…

【安装配置】WSL虚拟机导出、导入镜像(涉及到docker无法在wsl下使用的问题)

背景 WSL&#xff08;Windows Subsystem Linux&#xff09;&#xff0c;是微软提供的在Windows下便携地使用Linux系统的方式&#xff0c;它支持使用虚拟化技术&#xff08;也就是要在bios和控制面板中开启虚拟化支持&#xff09;&#xff0c;完美支持Ubuntu和Windows文件系统之…

泪目!网络连接中断的原因,终于找到了!

朋友们&#xff0c;出大事了&#xff01; 不知道多少朋友玩过 DNF 这个游戏&#xff0c;这个我从小学玩到大学的 “破” 游戏&#xff0c;昨天竟然出手游了&#xff01; 我都忘了自己曾几何时预约过这个手游通知&#xff0c;昨天给我发了条通知信息说游戏已开服。 老玩家直接…

一些常见的程序设计问题

秒杀 redis缓存库存 1.判断库存名额是否充足&#xff0c;2.进行扣减 为了防止超卖&#xff0c;必须保证这两部的原子性 库存扣减后发送mq消息&#xff0c;去异步执行创建订单流程&#xff0c;创建订单失败会造成少卖。可加重试机制&#xff0c;对多次重试依旧失败的&#xff…

基于Netty实现WebSocket服务端

本文基于Netty实现WebSocket服务端&#xff0c;实现和客户端的交互通信&#xff0c;客户端基于JavaScript实现。 在【WebSocket简介-CSDN博客】中&#xff0c;我们知道WebSocket是基于Http协议的升级&#xff0c;而Netty提供了Http和WebSocket Frame的编解码器和Handler&#…

解锁数据关联之道:SQL 表连接详解

文章目录 概述表关系横向连接内连接 inner join左连接 left join右连接 right join全连接 full join交叉连接 cross join 纵向合并UNION ALLUNION 概述 在数据处理、数据分析中常会用到表连接。表连接的作用是将多个表中的数据关联起来&#xff0c;以便在查询过程中获取更全面…

设计模式—23种设计模式重点 表格梳理

设计模式的核心在于提供了相关的问题的解决方案&#xff0c;使得人们可以更加简单方便的复用成功的设计和体系结构。 按照设计模式的目的可以分为三大类。创建型模式与对象的创建有关&#xff1b;结构型模式处理类或对象的组合&#xff1b;行为型模式对类或对象怎样交互和怎样…