npm详解

npm(Node Package Manager)是 Node.js 的标准包管理器。随同Node.js一起安装的包管理工具,它让开发者能够方便地共享和重用代码,可以说是Node.js生态系统中非常重要的一部分。

通过npm,开发者可以轻松地安装、更新、发布以及管理Node.js的包和依赖项。它允许开发者从npm仓库中下载别人编写的包到自己的项目中,并且可以管理这些包的版本依赖关系。此外,开发者也可以将自己编写的包发布到npm仓库,让其他开发者使用。

npm不仅仅用于Node.js的包管理,它也被广泛应用于Web前端开发,因为大多数现代的前端开发项目都使用npm来管理JavaScript的依赖包。

总而言之,npm是一个强大的工具,为Node.js和Web前端开发提供了便利的包管理功能,极大地促进了代码共享和项目协作。

npm 管理项目依赖的下载。

安装所有依赖

如果一个项目有一个 package.json 文件,通过运行

javascript 复制代码
npm install

安装单个包

你还可以安装特定的包,通过运行

javascript 复制代码
npm install <package-name>

此外,从 npm 5 开始,此命令将 <package-name> 添加到 package.json 文件依赖。 在版本 5 之前,你需要添加标志 --save

通常你会看到更多的标志被添加到这个命令中:

  • --save-dev 安装并添加条目到 package.json 文件开发依赖
  • --no-save 安装但不添加条目到 package.json 文件依赖
  • --save-optional 安装并添加条目到 package.json 文件可选依赖
  • --no-optional 将阻止安装可选依赖

也可以使用标志的简写形式:

  • -S:--save
  • -D:--save-dev
  • -O:--save-optional

devDependencies 和 dependencies 之间的区别在于前者包含开发工具,如测试库,而后者与生产中的应用打包在一起。至于 optionalDependencies 的不同之处在于,依赖的构建失败不会导致安装失败。 但是你的程序有责任处理依赖的缺失

更新包

更新也很容易,通过运行

javascript 复制代码
npm update

npm 将检查所有包是否有满足你的版本控制约束的更新版本。

你也可以指定要更新的单个包:

javascript 复制代码
npm update <package-name>

版本控制

除了普通下载,npm 还管理 版本控制,因此你可以指定任何特定版本的软件包,或者要求比你需要的版本更高或更低的版本。

javascript 复制代码
npm install <package-name>@<version>

运行任务

package.json 文件支持指定命令行任务的格式,可以使用

javascript 复制代码
npm run <task-name>

{

"scripts": {

"watch": "webpack --watch --progress --colors --config webpack.conf.js",

"dev": "webpack --progress --colors --config webpack.conf.js",

"prod": "NODE_ENV=production webpack -p --config webpack.conf.js"

}

}

javascript 复制代码
$ npm run watch
$ npm run dev
$ npm run prod
相关推荐
jay神1 小时前
【计算机毕业设计】基于Flask+Vue的电影数据可视化与智能推荐系统
前端·vue.js·python·信息可视化·flask·毕业设计·课程设计
FreeTinker7 小时前
HTML本地存储技术解析:localStorage与sessionStorage的原理、差异与应用场景
前端·html
qq_452396237 小时前
第十二篇:《全链路监控与可观测性:前端错误追踪与性能分析》
前端
wangruofeng8 小时前
Phosphor Icons 官网源码拆解:URL 即存储、水波动画与 7362 Star 图标库的架构实践
前端·架构·github
BigTopOne8 小时前
WebRTC Native / Android 开发学习资源整理
前端
excel9 小时前
nuxt 3 升级 nuxt 4 报错之 hasInjectionContext
前端
何以解忧,唯有..10 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
软件聚导航10 小时前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
恋猫de小郭11 小时前
看懂大模型架构术语,帮助你理解目前常见的大模型开源架构
前端·人工智能·ai编程
yma1611 小时前
通过提示词实现GitHub Pages 和 Nginx 双部署竟然这么简单?
前端