深入浅出: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

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

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

相关文章

高频面试题基本总结回顾1(含笔试高频算法整理)

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…

【FFmpeg】avformat_write_header函数

FFmpeg相关记录&#xff1a; 示例工程&#xff1a; 【FFmpeg】调用ffmpeg库实现264软编 【FFmpeg】调用ffmpeg库实现264软解 【FFmpeg】调用ffmpeg库进行RTMP推流和拉流 【FFmpeg】调用ffmpeg库进行SDL2解码后渲染 流程分析&#xff1a; 【FFmpeg】编码链路上主要函数的简单分…

GPT-4o首次引入!全新图像自动评估基准发布!

目录 01 什么是DreamBench&#xff1f; 02 与人类对齐的自动化评估 03 更全面的个性化数据集 04 实验结果 面对层出不穷的个性化图像生成技术&#xff0c;一个新问题摆在眼前&#xff1a;缺乏统一标准来衡量这些生成的图片是否符合人们的喜好。 对此&#xff0c;来自清华大…

sql server启动、连接 与 navicat连接sql server

一、sql server 启动 1.搜索cmd->以管理员身份运行 2.输入以下命令 net start mssqlserver 3.服务器启动成功 二、sql server连接 1.打开ssms&#xff0c;输入&#xff0c;连接 2.右键&#xff0c;属性 3.连接&#xff0c;勾选允许远程连接到此服务器 三、navicat连接sq…

Python实现无头浏览器采集应用的反爬虫与反检测功能解析与应对策略

Python实现无头浏览器采集应用的反爬虫与反检测功能解析与应对策略 随着网络数据的快速增长&#xff0c;爬虫技术在数据采集、信息分析和业务发展中扮演着重要的角色。然而&#xff0c;随之而来的反爬虫技术也在不断升级&#xff0c;给爬虫应用的开发和维护带来了挑战。为了应…

媒体宣发套餐的概述及推广方法-华媒舍

在今天的数字化时代&#xff0c;对于产品和服务的宣传已经变得不可或缺。媒体宣发套餐作为一种高效的宣传方式&#xff0c;在帮助企业塑造品牌形象、扩大影响力方面扮演着重要角色。本文将揭秘媒体宣发套餐&#xff0c;为您呈现一条通往成功的路。 1. 媒体宣发套餐的概述 媒体…

MySQL中的存储引擎

介绍 存储引擎就是存储数据&#xff0c;建立索引&#xff0c;更新/查询数据等技术的实现方式。存储引擎是基于表的&#xff0c;而不是基于库的&#xff0c;所以存储引擎也可以称为表类型&#xff08;即一个数据库下的表可以选择不同的存储引擎&#xff09;。 1. 如何查看一个…

day57---面试专题(框架篇)

框架篇 1. Spring refresh 流程 要求 掌握 refresh 的 12 个步骤Spring refresh 概述 refresh 是 AbstractApplicationContext 中的一个方法,负责初始化 ApplicationContext 容器,容器必须调用 refresh 才能正常工作。它的内部主要会调用 12 个方法,我们把它们称为 refre…

收银系统源码-千呼新零售【手机端收银】

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

风风火火的新造车,或正在酝酿下一个乐视系,造车就是个大坑

随着国内新能源汽车占新车市场的比例突破五成&#xff0c;燃油车发起了猛烈的反击&#xff0c;5月份燃油车猛烈反弹&#xff0c;前五名之中就有5款是燃油车&#xff0c;燃油车到了背水一战的时候&#xff0c;随着电动汽车和燃油车的较量达到白热化&#xff0c;新造车被淘汰一部…

无视OpenAI限制:智创聚合API的稳定服务承诺

近期OpenAI的一则消息——终止对中国提供API服务&#xff0c;无疑给许多依赖其技术的企业和开发者带来了不小的困扰。但别担心&#xff0c;智创聚合API平台始终在这里&#xff0c;为您提供稳定、可靠且经济的AI服务。 稳定服务&#xff0c;不受限制 智创聚合API平台的服务器设在…

kafka(一)原理(2)组件

一、broker 1、介绍 kafka服务器的官方名字&#xff0c;一个集群由多个broker组成&#xff0c;一个broker可以容纳多个topic。 2、工作流程 3、重要参数 参数名称 描述 replica.lag.time.max.ms ISR中&#xff0c;如果Follower长时间未向Leader发送通信请求或同步数据&a…

MessageBox的作用与用法

在C# &#xff08; Windows Forms &#xff09;中&#xff0c;MessageBox 的所有常用用法如下&#xff1a; 1. 显示一个简单的消息框 MessageBox.Show("这是一个简单的消息框。");2. 显示带标题的消息框 MessageBox.Show("这是一个带标题的消息框。", &…

脉冲同步器(快到慢)

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 参考代码 描述 sig_a 是 clka&#xff08;300M&#xff09;时钟域的一个单时钟脉冲信号&#xff08;高电平持续一个时钟clka周期&#xff09;&#xff0c;请设计脉冲同步电路&#xff0c;将sig_a信号同步到时钟域 cl…

【计算机毕业设计】073智慧旅游平台开发微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

abap 类封装Excel转换到内表

文章目录 1.封装思路2.参数2.1.参数解析3.代码4.调用案例5.该类中的其他方法截图1.封装思路 直接复制粘贴激活直接用 首先,需要你在SE11中创建一个和你Excel中的字段相同的结构,然后把这个结构名字以字符串的形式传给方法.几乎可以实现任意扁平结构的Excel转到内表. 2.参数 2…

QT基本对话框(基本对话框、工具盒类、进度条、调色板与电子钟、可扩展对话框、程序启动画面)

此篇文章通过实例介绍基本对话框的用法。首先介绍标准文件对话框&#xff08;QFileDialog&#xff09;、标准颜色对话框&#xff08;QColorDialog&#xff09;、标准字体对话框&#xff08;QFontDialog&#xff09;、标准输入对话框&#xff08;QInputDialog&#xff09;以及标…

耐高温水位传感器有哪些

耐高温水位传感器在现代液位检测技术中扮演着重要角色&#xff0c;特别适用于需要高温环境下稳定工作的应用场合。这类传感器的设计和材质选择对其性能和可靠性至关重要。 一种典型的耐高温水位传感器是FS-IR2016D&#xff0c;它采用了PPSU作为主要材质。PPSU具有优良的耐高温…

配置 Python 解释器及虚拟环境

配置 Python 解释器及虚拟环境 配置 Python 解释器&#xff1a; 1. 打开 PyCharm&#xff0c;进入“File”&#xff08;文件&#xff09;菜单&#xff0c;选择“Settings”&#xff08;设置&#xff09;。 2. 在弹出的设置窗口中&#xff0c;选择“Project: [项目名称]”下的…