npm包管理工具

ops/2024/9/25 23:09:08/

npm(全称 Node Package Manager,即node包管理器)Node.js默认的、JavaScript编写的软件包管理系统。

npm常见命令

# 项目开发相关
npm init  			# 在项目根目录下,创建一个 package.json 文件,需要填写一些内容
npm init -y   			# 在 package.json 文件中全部使用默认选项npm install <packageName> 	# 安装 项目内部局部包,项目开发依赖包
npm install -g  <packageName> 	# 安装 本地全局环境包,多为 命令行程序npm update <packageName> 	# 对项目内单个依赖包升级
npm update -g <packageName>     # 更新全局的软件包
npm install -g npm to update    # 更新升级npm
npm -g outdated 		# 使用此命令可以查看哪些包有更新npm uninstall <packageName>  	# 卸载本地(local)软件包
npm uninstall -g <packageName>  # 卸载全局(global)软件包npm list 			# 查看本地(local)软件包列表
npm list -g 			# 查看系统中全局安装过的软件包npm config list  # 显示npm相关信息# npm 发包相关
npm adduser  			# 创建一个 npm 账号(Username,Password,Email)
npm login			# 登录 npm 仓库账号(Username,Password)
npm publish  			# 发布自己的包到 npm,或者 更新已有的 npmnpm link			# 将本地开发包挂载到全局环境,可作为全局命令使用

npm常见参数

-g, --global:安装全局依赖,如果没有指定依赖包名,则将当前目录中的包安装至全局

-S, --save:安装依赖的同时将该依赖写入 dependencies

-D, –-save-dev:安装依赖的同时将该依赖写入 devDependencies

-O, --save-optional:安装依赖的同时将该依赖写入 optionalDependencies

-E, --save-exact:写入 package.json 时带有确切版本号

–no-optional:不安装 optional dependencies,可继承

dependencies是运行时依赖,发布后,发布后即生产环境还需要用的依赖

devDependencies是开发时依赖,发布时不需要使用。比如测试工具、代码检查。

默认情况下同时安装

package.json

package.json用来描述项目于信息及项目中所依赖的信息模块

package.json 配置文件中常见的字段:

name:包的名称。必填。

version:包的版本号。必填。

description:包的描述信息。

keywords:包的关键字。其他人可以通过关键字搜索到对应的包。

author:作者(项目开源发布时使用)。

license:开源协议(项目开源发布时使用)。

private:记录当前包是否是私有的。当属性值为 true 时,npm 是无法发布该包的,这是为了防止私有的包被发布出去。

main:指定包的入口文件。

scripts:用于配置一些脚本命令,以 key/value 的形式。配置后就可以通过 npm run key命令 来运行后面配置的 value 脚本。

依赖包符号的含义

~会匹配最近的小版本依赖包,比如 ~1.2.3 会匹配所有 1.2.x 版本,但是不包括 1.3.0

^会匹配最新的大版本依赖包,比如 ^1.2.3 会匹配所有 1.x.x 的包,包括 1.3.0,但是不包括 2.0.0

*安装最新版本的依赖包,比如 *1.2.3 会匹配 x.x.x

"dependencies": {"md5": "^2.1.0" # ^ 表示如果直接npm install 将会安装  md5  2.*.*的最新版本
}
"dependencies": {"md5": "~2.1.0"	# ~ 表示如果直接npm install 将会安装 md5 2.1.* 的最新版本
}
"dependencies": { "md5": "*"      # * 表示如果直接npm install 将会直接安装 md5的最新版本
}

package-lock.json

package.jsondependenciesdevDependencies只单纯记录本项目中的的依赖,无法保证依赖环境的一致。所以,在npmV5版本引入package-lock.json解决多人开发安装的依赖版本不一样的问题。

package-lock.json保证依赖树版本的锁定。package-lock.json精准记录并锁定版本号及其子版本号。

npx

临时下载软件包执行完成后删除

有些命令的软件包我们使用频率并不高,比如create-react-app脚手架工具,我们可以临时下载,创建后删除,就不会占用磁盘空间

npx create-react-app react-test


http://www.ppmy.cn/ops/115989.html

相关文章

mac终端打开报complete 13 command not found compdef异常处理以及命令补全功能实现

mac终端报complete未找到异常 mac打开终端报如下错误 "complete:13: command not found: compdef" message when launching Terminal 问题处理&#xff0c;参考https://apple.stackexchange.com/questions/296477/my-command-line-says-complete13-command-not-fou…

快速理解TCP协议(二)——TCP协议中的拥塞控制机制详解

在计算机网络中&#xff0c;TCP&#xff08;传输控制协议&#xff09;是一种广泛使用的面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议通过一系列复杂的机制来确保数据的可靠传输&#xff0c;其中拥塞控制是至关重要的一环。本文将深入探讨TCP协议中的拥塞控制机制&…

keil的debug功能

文章目录 一.窗口介绍二.功能2.1 debug断点调试和窗口变量2.2 四个花括号功能2.2.1 进去函数和下一步功能2.2.2 跳过函数和跳过该行代码功能2.2.3 函数内部跳出功能2.2.4 执行到光标处 2.3 查看内部寄存器 一.窗口介绍 二.功能 2.1 debug断点调试和窗口变量 先打开下图debug断…

量子密码基本原理和必要性

量子加密 量子加密&#xff08;Quantum Encryption&#xff09;&#xff0c;或称量子密码&#xff0c;是一种基于量子力学原理的加密技术。它通过自然物理定律而非数学模型保障信息安全。与传统的加密算法不同&#xff0c;量子加密具有理论上的不可破解性&#xff0c;因为其安…

鸿蒙【项目打包】- .hap 和 .app;(测试如何安装发的hap包)(应用上架流程)

#打包成.hap需要用到真机 原因是&#xff1a;只有用上了真机才能在项目中配置 自动签名 #步骤: ##第一步:选择真机->选择项目结构->点Sigining Configs(签名配置) ##第二步:勾选Automatically generate signature(自动签名)->点击ok ##第三步:点击构建->点击 …

股指期权交易详细基础介绍

股指期权是期权市场中的一种特定类型&#xff0c;其标的资产为股票指数。简而言之&#xff0c;它允许投资者在未来某个特定时间&#xff0c;以预先约定的价格&#xff0c;买入或卖出股票指数的权利。在中国&#xff0c;已上市的股指期权包括上证50、沪深300和中证1000股指期权&…

elementFormDefault 怎么用注解指定 webservice cxf

在 Java EE (或者 Jakarta EE) 中&#xff0c;elementFormDefault 是一个用于指定 XML 元素命名空间的设置。通常在 JAXB (Java Architecture for XML Binding) 中使用&#xff0c;elementFormDefault 可以用于定义包内所有元素的命名空间的使用方式。这一设置是在 XmlSchema 注…

使用 Flask-Limiter 和 Nginx 实现接口访问次数限制

在现代 Web 应用中&#xff0c;针对敏感接口&#xff08;如短信验证码、登录接口等&#xff09;的访问次数限制至关重要。通过设置合理的限流策略&#xff0c;可以有效防止接口滥用&#xff0c;避免过多的资源消耗&#xff0c;并提升安全性。本文将通过 Nginx 和 Flask-Limiter…