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


在现代的前端开发流程中,npm(Node Package Manager)已经成为了不可或缺的一部分。它不仅帮助我们有效地管理项目中的依赖包,还提供了一系列强大的命令来优化开发体验。在这篇博客中,我们将深入探讨 npm 的常用命令,并通过实际的案例和项目实践来加深理解。

一、npm 简介

npm 是随同 Node.js 一起安装的包管理工具,它允许开发者轻松地共享和复用代码,使得项目的构建和维护变得更加高效。

二、npm 常用命令详解

(一)npm init

npm init 命令用于在当前目录中初始化一个新的 Node.js 项目,并创建一个 package.json 文件。这个文件是项目的配置文件,包含了项目的名称、版本、作者、依赖等重要信息。

实践案例:
假设我们要创建一个名为 my-project 的项目。在终端中进入到目标文件夹,然后输入 npm init 。系统会提示您输入一系列的项目信息,如项目名称、版本、描述等。如果您不想逐一输入,可以使用 npm init -y 快速创建一个默认配置的 package.json 文件。

(二)npm install

  1. npm install <package-name> :用于安装指定的包。
    • 实践:如果我们想要在项目中使用 axios 这个 HTTP 请求库,只需输入 npm install axios ,npm 就会自动下载并安装 axios 及其相关的依赖。
  2. npm install <package-name> --save :安装指定的包,并将其添加到 package.json 文件的 dependencies 部分,这表示该包是项目在生产环境中运行所必需的依赖。
    • 示例:对于像 express 这样的后端框架,如果我们确定在生产环境中需要它,就可以使用 npm install express --save 。
  3. npm install <package-name> --save-dev :安装指定的包,并将其添加到 package.json 文件的 devDependencies 部分,通常这些包只在开发过程中使用,比如测试框架、构建工具等。
    • 比如,安装 jest 这个测试框架时,可以使用 npm install jest --save-dev 。

(三)npm update

npm update 命令用于更新项目中已安装的包到最新的可用版本。

实践操作:
在项目目录中执行 npm update ,npm 会检查每个已安装的包是否有新的版本可用,并进行更新。但需要注意的是,这可能会导致一些不兼容的更改,所以在更新之前最好查看相关包的更新日志。

(四)npm uninstall

npm uninstall <package-name> 用于从项目中卸载指定的包。

例如,如果项目不再需要 moment 这个日期处理库,可以输入 npm uninstall moment 来将其移除,并同时会从 package.json 文件中删除相关的依赖配置。

(五)npm run

npm run 用于执行在 package.json 文件中定义的脚本命令。

在 package.json 的 scripts 字段中,我们可以自定义各种脚本,例如:

"scripts": {
  "start": "node server.js",
  "build": "webpack",
  "test": "jest"
}

然后通过 npm run start 来启动服务器,npm run build 来执行构建操作,npm run test 来运行测试。

实践场景:
假设我们有一个使用 Webpack 进行构建的项目,定义了 build 脚本为 webpack 。在开发过程中,每次需要构建项目时,只需输入 npm run build ,Webpack 就会按照配置文件进行打包操作。

(六)npm list

npm list 用于列出项目中已安装的所有包及其依赖关系。

执行 npm list 后,会以树形结构展示出项目中安装的包以及它们之间的依赖层次。

(七)npm cache

npm cache clean 用于清除 npm 的缓存。

有时候,缓存可能会导致一些奇怪的问题,通过清除缓存可以解决一些安装或更新包时的异常情况。

三、实际项目中的综合运用

实战应用

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

1. 初始化项目

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

复制

npm init
  • 1.

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

2. 安装依赖

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

复制

npm install express
  • 1.

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

复制

npm install mocha --save-dev
  • 1.

3. 运行脚本

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

复制

"scripts": {
  "start": "node server.js"
}
  • 1.
  • 2.
  • 3.

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

复制

npm start
  • 1.

4. 更新依赖

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

复制

npm update
  • 1.

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

复制

npm update express
  • 1.

5. 查看依赖

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

复制

npm list
  • 1.

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

复制

npm outdated
  • 1.

6. 发布包

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

复制

npm publish
  • 1.

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

7. 卸载包

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

复制

npm uninstall mocha
  • 1.

8. 查看包信息

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

复制

npm view express
  • 1.

9. 搜索包

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

复制

npm search websocket
  • 1.

10. 清理缓存

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

复制

npm cache clean --force
  • 1.

11. 设置镜像源

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

复制

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

12. 查看 npm 配置

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

复制

npm config list

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【正点原子K210连载】 第十五章 按键中断实验 摘自【正点原子】DNK210使用指南-CanMV版指南

1&#xff09;实验平台&#xff1a;正点原子ATK-DNK210开发板 2&#xff09;平台购买地址https://detail.tmall.com/item.htm?id731866264428 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第十五章 按键中断实…

问题解决|endnote文献手工导入

一、背景介绍 手工导入一篇文献是指手动编辑文献的相关信息Preference。为什么要手动这么麻烦&#xff1f;因为有的文献比较老只有纸质版本&#xff0c;有的文献信息不全&#xff0c;有的则是没有编码无法识别等等&#xff0c;需要手工录入&#xff1b;一般需要手工录入的情况比…

Decorators与类

在Python中&#xff0c;装饰器&#xff08;decorator&#xff09;是一种用于修改函数或方法行为的特殊函数。装饰器可以用于函数、方法和类。在类中使用装饰器可以增强类的方法、属性&#xff0c;甚至整个类的功能。以下是一些关于我对装饰器与类的详细信息和示例教程。 1、问题…

计算机系统导论

第一章 计算机系统基本概述 【1】世界上第一台计算机 1946 年由美国宾夕法尼亚大学研制出世界上第一台电子数字计算机&#xff0c;取名 ENIAC。由此 诞生了“第一个电子的大脑” 【2】计算机的发展阶段 第一个发展阶段&#xff1a;1946-1956 年电子管计算机的时代.1946 年…

Halcon 特征检测使用

一 Region area: 面积row: 中心的行坐标column: 中心的列坐标width: 区域的宽度(平行于坐标轴)height: 区域的高度(平行于坐标轴)row1: 左上角的行坐标column1: 左上角的列坐标row2: 右下角的行坐标column2: 右下角的列坐标‘ra’; 椭圆的长半轴…

IMU用于水下机械臂遥操作

在当今科技飞速发展的时代&#xff0c;探索深海奥秘与执行水下任务如今有了新帮手——一款能模拟人类手臂动作的水下机械臂。这款由波兰科学家携手机器人公司联手打造的创新产品能够精确复现人类手臂的动作&#xff0c;其精髓在于构建了一个由惯性测量单元&#xff08;IMU&…

【技巧】ArcGIS Pro设置自动保存数据编辑内容

一、工程文件自动保存 ArcGIS Pro软件的工程也可以自动保存备份。默认备份时间是5分钟&#xff0c;您可以在【工程】→【选项】→【常规】→【工程恢复】中调整自动备份时间。 二、数据编辑自动保存 操作方法&#xff1a;【工程】→【选项】→【编辑】→【会话】&#xff0c;勾…

fastapi+vue3前后端分离开发第一个案例整理

开发思路 1、使用fastapi开发第一个后端接口 2、使用fastapi解决cors跨域的问题。cors跨域是浏览器的问题&#xff0c;只要使用浏览器&#xff0c;不同IP或者不同端口之间通信&#xff0c;就会存在这个问题。前后端分离是两个服务&#xff0c;端口不一样&#xff0c;所以必须要…

flex讲解

随着前端技术的不断发展和更新&#xff0c;flex布局成为前端布局的主流。但是仍然有很多前端新手搞不懂flex到底怎么用&#xff01;&#xff01;&#xff01;今天我们就来好好讲讲flex布局 老规矩先上定义 什么是flex布局 布局的传统解决方案&#xff0c;基于盒状模型&#x…

DNF手游鬼剑士攻略:全面解析流光星陨刀的获取与升级!云手机强力辅助!

《地下城与勇士》&#xff08;DNF&#xff09;手游是一款广受欢迎的多人在线角色扮演游戏&#xff0c;其中鬼剑士作为一个经典职业&#xff0c;因其强大的输出能力和炫酷的技能特效&#xff0c;吸引了众多玩家的青睐。在这篇攻略中&#xff0c;我们将详细介绍鬼剑士的一把重要武…

智慧路灯可视化:点亮城市管理的新篇章

智慧路灯可视化系统通过图扑 HT 实时数据采集和分析&#xff0c;将城市每一盏路灯的状态、能耗和故障信息一目了然地展示在管理平台上。高效的监控与管理不仅提升了公共照明的维护效率&#xff0c;减少人工巡检成本&#xff0c;还支持节能策略&#xff0c;实现智慧城市的可持续…

国际短信API的功能有哪些?如何配置使用?

国际短信API的合规性如何保障&#xff1f;国际短信API使用教程&#xff1f; 国际短信API不仅仅是一个发送短信的工具&#xff0c;它还包含了许多强大的功能&#xff0c;能够帮助企业更好地管理和优化他们的通信策略。AoKSend将详细探讨国际短信API的主要功能。 国际短信API&a…

Excel表格转Tex工具推荐

为了制作符合 SCI 论文要求的表格&#xff0c;直接用 LaTeX 编写通常比较复杂。我们可以先在 Excel 中绘制好所需的表格&#xff08;最好加上边框&#xff09;。最近我发现了一个非常好用的 Excel 转 LaTeX 工具&#xff0c;能够让 LaTeX 表格的编写变得非常方便。 工具&#…

跨境电商内卷时代,亚马逊卖家如何低成本提升产品曝光与销量?

在跨境电商领域&#xff0c;随着市场的日益饱和和竞争的加剧&#xff0c;卖家们普遍面临着一个共同的挑战&#xff1a;流量稀缺&#xff0c;转化率低。为了在这个“内卷”严重的环境中脱颖而出&#xff0c;许多卖家不惜投入大量资金和资源&#xff0c;尝试各种站内和站外推广手…

20240701 每日AI必读资讯

&#x1f3eb;AI真炼丹&#xff1a;整整14天&#xff0c;无需人类参与 - 英矽智能推出全球首个AI参与决策的生物学实验室&#xff0c;实现了14天内完成靶点发现和验证的全自动化闭环实验。 - 该实验室由PandaOmics平台驱动&#xff0c;集成多种预测模型和海量数据&#xff0…

前端:多服务端接口资源整合与zip打包下载

项目需求 前端项目开发中,有一个页面需要去整合多个服务接口返回的数据资源,并且需要将这多个服务接口接口返回的数据进行资源压缩,最终打包成zip压缩包,并在客户端完成下载。 基本需求梳理如下, 实现思路 这个需求点其实本质上还是传统的“文件下载”功能需求,常见的例如…

Golang基础问题

Go基础 文章目录 Go基础● Go有那些关键字&#xff1f;● Go方法与函数的区别&#xff1f;● Go函数返回局部变量的指针是否安全&#xff1f;● Go函数参数传递是值传递还是引用传递&#xff1f;● defer关键字的实现原理&#xff1f;● 内置函数make和new的区别&#xff1f;●…

ollama+Dify大模型本地化部署打造个人知识库 (2)

ollama大模型部署-CSDN博客文章浏览阅读26次。Ollama 是一个能在本地机器上轻松构建和运行大型语言模型的轻量级、可扩展框架&#xff0c;适用于多种场景&#xff0c;具有易于使用、资源占用少、可扩展性强等特点。https://blog.csdn.net/weixin_72819498/article/details/1400…

LED裸眼3D显示屏:开启视觉新体验

随着科技的不断进步&#xff0c;LED显示屏作为一种新型的显示技术&#xff0c;已经被广泛应用于各个领域。而其中&#xff0c;LED裸眼3D显示屏更是因其独特的技术原理和令人震撼的视觉效果&#xff0c;成为了业界关注的焦点。 裸眼3D显示屏是一种前沿的显示技术&#xff0c;它…

NLP特征提取的惊人历史演变

NLP特征提取的惊人演变 1.理解特征提取2. 文本表示的演变2.1.词袋的简单性2.2. N-Gram 模型的进步2.3. TF-IDF 的崛起 3. 深入研究词嵌入3.1.探索 Word2Vec3.2.深入了解 GloVe3.3.深入研究 FastText 4. 上下文嵌入的影响4.1 ELMo 的突破4.2 理解 BERT 的机制4.3 Transformer的出…