深入浅出:npm常用命令详解与实战

news2024/9/21 10:57:00

theme: smartblue

动物 (11).jpg

在这里插入图片描述

npm是什么

npm(Node Package Manager)是Node.js平台的默认包管理器,它让JavaScript开发者能够轻松地共享、管理和使用彼此编写的代码模块。npm不仅仅是一个安装工具,它还是一个全面的生态系统,用于发布、发现、安装和管理Node.js项目的依赖关系。

以下是npm的一些核心功能和特点:

  1. 包管理和依赖解决:npm帮助开发者管理项目中所依赖的各种模块及其版本,自动解决依赖关系,避免版本冲突。
  2. 全球最大的包仓库:npm拥有世界上最大的开源软件包注册表,截至某个时间点(例如2022年9月),注册表中列出了超过210万个软件包,涵盖从简单的工具函数到完整的应用程序框架等广泛类别。
  3. 命令行工具:npm提供了一个强大的命令行界面(CLI),通过这个界面,开发者可以安装、更新、卸载包,管理项目的依赖关系,初始化新项目,发布自己的包到npm仓库等。
  4. 版本控制:npm支持语义化版本控制,使得开发者能够指定依赖包的确切版本或版本范围,确保项目在不同环境中的一致性和稳定性。
  5. 脚本执行:package.json文件中的"scripts"字段允许定义自定义脚本,npm可以执行这些脚本,便于自动化构建、测试、部署等任务。
  6. 工作空间管理:对于包含多个相互依赖的包的大型项目,npm支持工作空间(workspaces)功能,便于统一管理和协调这些包的依赖和版本。
  7. 私有和企业解决方案:除了公共仓库,npm还为企业和个人提供了私有仓库选项,以便内部团队之间共享和管理私有包。

npm常用命令

npm 提供了一系列丰富的命令行工具来帮助开发者管理项目和包依赖。以下是一些常用的 npm 命令及其简要说明:

  1. npm install: 用于安装项目依赖。不带参数时,会安装 package.json 文件中列出的所有依赖。可以通过提供包名来安装特定的包。
  2. npm uninstall: 卸载指定的包。需要提供包名作为参数。
  3. npm update: 更新项目的依赖到最新版本。可以更新所有依赖或指定的单个包。
  4. npm init: 用于初始化一个新的 npm 项目,创建 package.json 文件。这个命令会引导用户填写项目信息,如名称、版本、作者等。
  5. npm start: 默认的脚本命令,通常用于启动开发服务器或运行项目。具体行为取决于 package.json 中 “scripts.start” 的定义。
  6. npm run: 执行 package.json 文件中 “scripts” 字段定义的脚本命令。后面跟脚本的名称,如 npm run build。
  7. npm test: 运行项目的测试套件。同样,实际执行的命令由 “scripts.test” 定义。
  8. npm publish: 发布当前项目到 npm 仓库,使其可供其他人安装。只有在项目有正确的权限和配置下才能使用。
  9. npm ls 或 npm list: 列出项目的依赖树,展示已安装的本地和全局包。
  10. npm cache clean: 清理 npm 的本地缓存。有助于解决因缓存问题导致的安装错误。
  11. npm config: 管理 npm 的配置。可以查看、设置或删除配置项,例如设置 registry 源。
  12. npm outdated: 检查项目依赖是否为最新版本,显示哪些包有更新可用。
  13. npm install --save: 安装包并将它添加到 package.json 的 dependencies 列表中,用于生产环境依赖。
  14. npm install --save-dev: 类似于 --save,但将包添加到 devDependencies 列表中,用于开发环境依赖。

实战应用

了解这些命令的使用方法对于日常开发至关重要。下面和大家分享一些 npm 常用命令的实际使用示例:

1. 初始化项目

当你开始一个新的 Node.js 项目时,首先需要创建一个 package.json 文件来管理项目的元数据和依赖。使用 npm init 命令可以做到这一点:

npm init

这个命令会提示你输入项目的信息(如名称、版本、描述等),或者你可以通过 npm init --yes 快速生成默认的 package.json 文件。

2. 安装依赖

安装一个名为 express 的包作为项目的依赖:

npm install express

这会安装 express 并将其添加到 dependencies 列表中。如果是要安装开发依赖(比如测试框架 mocha):

npm install mocha --save-dev

3. 运行脚本

假设你的 package.json 文件中定义了一个名为 start 的脚本:

"scripts": { "start": "node server.js" }

你可以通过以下命令来运行这个脚本:

npm start

4. 更新依赖

更新所有依赖到最新版本(谨慎操作,可能引入不兼容变更):

npm update

或者只更新特定的包,比如 express:

npm update express

5. 查看依赖

查看已安装的全部依赖及其版本:

npm list

查看是否有依赖包需要更新:

npm outdated

6. 发布包

如果你开发了一个想要分享给社区的包,可以使用 npm publish 命令发布到 npm 仓库。确保你已经在 npmjs.com 上注册了账号,并且当前目录下有正确的 package.json 文件。

npm publish

请注意,一旦发布,就不能修改已发布的版本,只能发布新的版本号。

7. 卸载包

如果你不再需要某个包,可以使用 npm uninstall 命令来移除它。例如,卸载之前安装的 mocha:

npm uninstall mocha

8. 查看包信息

想要了解某个包的详细信息,如版本、作者、许可证等,可以使用 npm view 命令:

npm view express

9. 搜索包

如果你想找一个满足特定需求的包,可以使用 npm search 命令进行搜索。比如,寻找与 “websocket” 相关的包:

npm search websocket

10. 清理缓存

有时候,由于缓存问题可能会导致安装失败或异常,使用 npm cache clean --force(在 npm v6 中)或 npm cache clean --force(在 npm v7 及以后版本中)来清理缓存:

npm cache clean --force

11. 设置镜像源

在中国大陆地区,为了加速 npm 包的下载速度,通常会设置 npm 镜像源。可以使用 npm config 命令设置:

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

12. 查看 npm 配置

如果你想查看当前的 npm 配置信息,可以使用:

npm config list

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

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

相关文章

应用监控pinpoint调研

参考 https://blog.csdn.net/Rose_juvenile/article/details/135285508?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-135285508-blog-132330996.235^v43^pc_blog_bottom_relevance_base6&spm1001.2101.3001.4242.1&a…

2024年6月大众点评广州餐饮店铺POI分析20万家

2024年6月大众点评广州餐饮店铺POI共有199175家 店铺POI点位示例: 店铺id k9uiFADtAvs9EdPC 店铺名称 点都德(聚福楼店) 十分制服务评分 8.6 十分制环境评分 8.3 十分制划算评分 8.5 人均价格 77 评价数量 41673 店铺地址 惠福东路470号(富临食府对面) 大…

算法力扣刷题记录十【19.删除链表的倒数第N个节点】

前言 链表练习,继续 题目:力扣【19.删除链表的倒数第N个节点】 题目阅读 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1…

使用Anaconda Prompt安装cv2模块

问题 使用命令: conda install opencv-python出现找不到包 使用命令:pip install opencv-python下载很慢(kb/s速度)而且会由于断连报错(不一定是网的问题) 解决方案 使用清华镜像下载,这样…

逆变器使用手册:类型详解、安装要点与维护须知

逆变器随着可再生能源的兴起和移动电源需求的激增已成为连接直流电与交流电世界的桥梁,其重要性不言而喻。无论是太阳能发电系统的高效利用,还是汽车、游艇等移动设备的电力供应,逆变器都扮演着关键角色。然而,正确的使用方法是确…

3D在线展览馆的独特魅力,技术如何重塑展览业的未来?

在数字化和虚拟现实技术迅猛发展的今天,3D在线展览馆已经成为一种颇具前景的创新形式。搭建3D在线展览馆不仅能够突破传统展览的时空限制,还能为参观者提供身临其境的体验,极大地提升展示效果和用户互动。 一、3D在线展览馆的意义 1、突破时空…

idea 自动生成序列化数字

目标:当类继承Serializable后自动生成序列化Uid 网上查了很多说勾选class without ‘serialVersionUID’ 但是我勾选没用 最后发现,我勾选的是Serialization issues里面的配置,要勾选的是JVM languages下的 如下图所示,记录一下…

鸿蒙期末项目(2)

主界面 主界面和商店详情界面参考如下设计图(灵感严重匮乏) 简单起见,将整个app分为4个布局,分别是主界面、搜索界面、购物车界面,以及个人界面。 所以在app中也需要使用tab组件进行分割,且需要通过tabBa…

笔记本电脑录屏,教你3个方法,简单录屏

随着科技的飞速发展,笔记本电脑录屏功能已经不再局限于传统的录制需求,而是成为了探索屏幕动态的新方式。无论是创意工作者、游戏爱好者还是日常办公者,都可以借助这一功能,将屏幕上的精彩瞬间、重要信息或创新思路记录下来&#…

Quads,一个无敌的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个无敌的 Python 库 - Quads。 Github地址:https://github.com/fogleman/Quads 在科学计算和工程应用中,数值积分是一个常见的问题。Python的Quads库…

maven仓库的作用以及安装 , DEA配置本地Maven

ay12-maven 主要内容 Maven的作用Maven仓库的作用Maven的坐标概念Maven的安装IDEA配置本地Maven 一、maven概述 1.1、项目开发中的问题 1、我的项目依赖一些jar包,我把他们放在哪里?直接拷贝到项目的lib文件夹中?如果我开发的第二个项目还是需要上面…

【独家揭秘】SmartEDA电路仿真软件:电子电路基础学习的神器!

在电子科技日新月异的今天,电路基础学习的重要性愈发凸显。但你是否曾为复杂的电路图、难以理解的电路原理而感到困扰?今天,我要向大家推荐一款学习神器——SmartEDA电路仿真软件,让你轻松踏入电子电路基础学习的殿堂!…

pytorch为自己的extension backend添加profiler功能

pytorch为自己的extension backend添加profiler功能 1.参考文档2.your-extension-for-pytorch需要增加的代码3.pytorch demo及如何调整chrome trace json文件4.[可视化](https://ui.perfetto.dev/) 本文演示了pytorch如何为自己的extension backend添加profiler功能 背景介绍 …

HarmonyOS Next开发学习手册——代码混淆

代码混淆简介 针对工程源码的混淆可以降低工程被破解攻击的风险,缩短代码的类与成员的名称,减小应用的大小。 DevEco Studio提供代码混淆的能力并默认开启,API 10及以上版本的Stage模型、 编译模式为release 时自动进行代码混淆。 使用约束…

React_创建一个项目

目录 一、React(js 版) 二、React(ts 版) 使用react创建一个项目,前提是确保你已经安装了Node.js和npm。 如果没有安装Node.js和npm,查看这个文件: 安装node.js和npmhttps://blog.csdn.net/zxy1993106…

Arcgis地统计分析工具灰色不可用 解决方法

使用Arcmap,调用地统计分析工具(Geostatistical Analyst)下的探索数据(Explore Data),发现工具呈灰色不可用。这是由于扩展模块中没有将该模块做勾选设置导致的。下面介绍一下如何解决地统计分析工具不可用…

学生成绩管理系统带8000字文档学生选课管理系统java项目javaweb项目ssm项目jsp项目java课程设计java毕业设计

文章目录 学生选课成绩管理系统一、项目演示二、项目介绍三、8500字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带8500字文档(9.9¥带走) 学生选课成绩管理系统 一、项目演示 选课成绩管理系统 二、项目介绍 语言: Java …

【从0实现React18】 (五) 初探react mount流程 完成核心递归流程

更新流程的目的: 生成wip fiberNode树标记副作用flags 更新流程的步骤: 递:beginWork归:completeWork 在 上一节 ,我们探讨了 React 应用在首次渲染或后续更新时的整体更新流程。在 Reconciler 工作流程中&#xff…

硬盘空间告急?监控服务器容量,钉钉及时提醒!

在日常的服务器维护中,硬盘容量的监控是非常重要的。如果硬盘容量超过某个阈值,可能会导致服务器无法正常运行,影响业务的正常运作。为了避免这种情况,我们可以编写一个Shell脚本,定期检查硬盘容量,当超过设…

springboot + Vue前后端项目(第二十记)

项目实战第二十记 写在前面1. 高德地图官网2. 开发文档3. 集成高德地图3.1 在public文件夹下创建config.js3.2 index.html(在项目启动文件中引入外部的js)3.3 点标记(用点标记当前位置)3.4 信息窗体(点击当前位置&…