深入浅出:npm常用命令详解与实践【保姆级教程】

news2024/11/22 9:38:09

在这里插入图片描述

大家好,我是CodeQi!

在我刚开始学习前端开发的时候,有一件事情让我特别头疼:管理和安装各种各样的依赖包。

那时候,我还不知道 npm 的存在,手动下载和管理这些库简直是噩梦。

后来,我终于接触到了 npm(Node Package Manager),它不仅帮我解决了依赖管理问题,还让我在开发效率上得到了质的飞跃。

今天,我决定把这些年来积累的 npm 使用经验分享给大家,希望能帮助你们更高效地进行开发。

在这篇【保姆级教程】中,我们将深入浅出地了解 npm 的常用命令,并通过具体的实践案例来加深理解。

准备好了吗?让我们开始吧!

1. 什么是 npm?

npm 全称为 Node Package Manager,是 Node.js 的包管理工具和默认包管理器。它的主要功能包括:

  • 包管理:安装、卸载、更新和查看包。
  • 依赖管理:自动处理包的依赖关系。
  • 脚本运行:通过 npm scripts 运行常见任务。
  • 包发布:将自己的包发布到 npm 仓库。

npm 是每个 Node.js 开发者必备的工具,熟练使用它可以大大提升我们的开发效率。

2. 安装和配置 npm

2.1 安装 Node.js 和 npm

要使用 npm,首先需要安装 Node.js。

可以在 Node.js 官网 下载并安装最新版本的 Node.js。

安装 Node.js 时会自动安装 npm

2.2 检查安装

安装完成后,打开终端(命令行),输入以下命令来检查 Node.js 和 npm 是否安装成功:

node -v
npm -v

如果显示出版本号,说明安装成功。

2.3 配置 npm

npm 提供了一些配置选项,可以通过命令行进行设置。

例如,我们可以设置全局安装包的路径和缓存路径:

npm config set prefix /usr/local
npm config set cache /home/user/.npm-cache

我们还可以通过以下命令查看所有的配置项:

npm config list

3. 基本命令详解

3.1 初始化项目

在开始使用 npm 管理项目之前,我们需要先初始化一个项目。

初始化项目会创建一个 package.json 文件,用于描述项目的基本信息和依赖关系。

npm init

执行该命令后,npm 会提示你输入一些项目信息,例如名称、版本号、描述、入口文件、作者等。

也可以使用 -y 参数跳过所有提示,使用默认值初始化项目:

npm init -y

3.2 安装依赖

安装依赖是 npm 最常用的功能之一。可以使用以下命令安装依赖包:

npm install <package-name>

例如,安装 lodash

npm install lodash

默认情况下,npm 会将包安装到 node_modules 目录,并将依赖信息添加到 package.json 文件中的 dependencies 字段。

开发依赖

如果某个依赖只在开发过程中需要,而不需要在生产环境中使用,可以将其安装为开发依赖:

npm install <package-name> --save-dev

例如,安装 eslint 作为开发依赖:

npm install eslint --save-dev

3.3 卸载依赖

卸载依赖包时,npm 会从 node_modules 目录中删除包,并从 package.json 文件中移除对应的依赖项。

例如,卸载 lodash

npm uninstall lodash

如果你想卸载一个开发依赖,可以使用以下命令:

npm uninstall eslint --save-dev

3.4 更新依赖

随着时间的推移,依赖包会发布新版本。

我们可以使用以下命令来更新依赖包:

npm update <package-name>

例如,更新 lodash

npm update lodash

这种方法只会更新 package.json 文件中指定版本范围内的依赖。

如果你希望更新到最新版本,可以使用 npm install <package-name>@latest 命令:

npm install lodash@latest

3.5 查看依赖

要查看当前项目中安装的所有依赖包,可以使用以下命令:

npm list

这会列出所有依赖包及其版本号。

如果只想查看顶级依赖(不包括子依赖),可以使用 --depth=0 参数:

npm list --depth=0

要查看全局安装的包,可以使用以下命令:

npm list -g --depth=0

4. 高级命令详解

4.1 运行脚本

npm 允许我们在 package.json 文件中定义脚本,并通过 npm run <script-name> 命令运行这些脚本。

例如,在 package.json 文件中添加以下内容:

"scripts": {
   
    "start": "node app.js",
    "test": "mocha"
}

然后,我们可以使用以下命令运行这些脚本:


                

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

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

相关文章

Apache Ranger 2.4.0 安装部署

1、安装ranger admin 2、源码编译Ranger wget https://www.apache.org/dist/ranger/2.4.0/apache-ranger-2.4.0.tar.gz tar zxvf apache-ranger-2.4.0.tar.gz cd apache-ranger-2.4.0 mvn -Pall clean mvn clean package -DskipTests maven settting可以设置阿里云进行资源下载…

北斗/GPS模块输出的NMEA语句详解

NMEA协议采用 ASCII 码来传递 GPS 定位信息&#xff0c;我们称之为帧。 帧格式形如&#xff1a;$aaccc,ddd,ddd,…,ddd*hh(CR)(LF) 1、“$”&#xff1a;帧命令起始位 2、aaccc&#xff1a;地址域&#xff0c;前两位为识别符&#xff08;aa&#xff09;&#xff0c;后三位为…

Email OTP验证认证接口和API发送邮件平台?

Email OTP验证认证接口如何设计&#xff1f;邮件发送平台怎么选&#xff1f; Email OTP验证认证接口和API发送邮件平台为实现这一目标提供了有效的解决方案。AokSend将深入探讨Email OTP验证认证接口及API发送邮件平台的关键功能和优势。 Email OTP&#xff1a;工作原理 用户…

vue3 在el-input的光标处插入文本

点击文本框下方的按钮&#xff0c;将相应的文本插入光标处的实现&#xff1a; <el-input type"textarea" rows"4" v-model"formula" blur"handleBlur" clearable></el-input><el-button-group class"short_btn&q…

解决“Undefined control sequence. \hline”

解决“Undefined control sequence. \hline” Q:创建表格时显示错误“Undefined control sequence. \Xhline”A:解决方法C介绍\usepackage{makecell}作用使用方法示例其他功能总结 Q:创建表格时显示错误“Undefined control sequence. \Xhline” MTMAGVDPP.tex: 错误: 211: Un…

R语言学习与笔记2-RRStudio环境配置(Windows版)

R语言学习与笔记2-R&RStudio环境配置&#xff08;Windows版&#xff09; 安装 R安装RStudio修改默认工作目录修改镜像验证镜像源修改文件编码 环境测试 安装 R R下载地址&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/base/ 点击下载链接并运行安装…

互联网医院系统源码解析:如何打造智能数字药店APP?

在互联网技术飞速发展的今天&#xff0c;医疗行业也在不断与之融合&#xff0c;互联网医院系统应运而生。特别是智能数字药店APP的兴起&#xff0c;使得医疗服务变得更加便捷、高效。本文将深入解析互联网医院系统源码&#xff0c;探讨如何打造一个智能的数字药店APP。 一、互…

聚焦 Navicat 17 新特性 | 让用户界面交互更丝滑

随着 Navicat 17 的发布&#xff0c;引起业界热烈反响和深入讨论。早前&#xff0c;我们介绍了 Navicat 17 《模型设计创新与优化​​​​​​​》与《查询与配置》的新特性。此外&#xff0c;Navicat 在用户界面交互方面进行了显著优化&#xff0c;新增了一系列实用的功能&…

springboot高校在线健康咨询服务APP-计算机毕业设计源码86100

摘要 随着信息技术的快速发展和智能手机的普及&#xff0c;移动互联网已经成为现代人生活中不可或缺的一部分。在这一背景下&#xff0c;高校在线健康咨询服务APP应运而生&#xff0c;旨在为广大高校师生提供更加便捷、高效、个性化的健康咨询服务。 高校作为人才培养的摇篮&am…

【硬件模块】SGP30气体传感器

SGP30 这是SGP30官方文档里开头的介绍&#xff0c;简单来说就是SGP30是一个数字多像素气体传感器&#xff0c;然后具有长期稳定性和低漂移。 这些我们都不用管&#xff0c;我们只需要知道SGP30是通过I2C来通信的&#xff0c;并且可以采集的数据有CO2和TVOC的含量。TVOC是“To…

记一次android打包,因路由规则设置不合理而导致pom文件无法访问的错误

一、错误详情 FAILURE: Build failed with an exception.* What went wrong: Could not determine the dependencies of task :mediaplayer:compileReleaseAidl. > Could not resolve all task dependencies for configuration :mediaplayer:releaseCompileClasspath.> C…

编译原理必考大题:构造项目集规范族,构造LR(0)分析表

在学习项目集规范族的构造之前,要先知道什么是项目?什么是项目集的闭包运算? 文章目录 前置知识LR(0)项目项目集的闭包运算项目转换函数GO 构造项目集规范族解决方法 构造LR(0)分析表真题实战: 前置知识 LR(0)项目 项目就是规则加上’’ 例如一条规则,A→abc 它对应的项目就…

【C++】开源:命令行解析库CLI11配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍命令行解析库CLI11配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#x…

智能改写工具大比拼:5款免费工具帮你告别重复内容

写作人员在创作文章时&#xff0c;经常面临着展现知识深度和创新思维的双重挑战。 在此过程中难免会遇到内容重复或灵感不足的问题。但不必过于焦虑。文章智能改写工具可以成为你的得力助手&#xff0c;帮你克服大部分写作难题。 接下来&#xff0c;让我们一起探索那些备受推…

重生奇迹mu精灵之心怎么搭配

玩家可以通过召唤来召唤多种精灵之心&#xff0c;每种精灵之心增加的属性也不同。精灵之心的作用是为了提升各种各样的属性。我们可以通过召唤获得精灵之心&#xff0c;前面的解锁费用较低&#xff0c;而后面的解锁需要大量的金币来解锁。 召唤精灵之心后&#xff0c;我们可以…

ROS2 rosbag2记录仪

rosbag2类似于行车记录仪&#xff0c;录制一段话题数据&#xff0c;录制完成后可以多次发布出来进行测试和实验&#xff0c;也可以将话题数据分享给别人用于验证算法等。 1.启动talker服务 ros2 run demo_nodes_cpp talker 2.记录话题数据 chatter ros2 bag record /chatte…

STL的六大组件

一.总体概念 STL&#xff08;Standard Template Library&#xff0c;标准模板库&#xff09;是C标准库的一部分&#xff0c;提供了丰富且高效的数据结构和算法。STL主要由六大组件组成&#xff0c;它们是&#xff1a; 容器&#xff08;Containers&#xff09;&#xff1a;STL提…

AIGC文生图lora微调训练案例;SD-Train界面训练stable Diffusion lora模型

lora仓库&#xff08;1000多个lora微调模型分享&#xff09;&#xff1a; https://lorastudio.co/models 参考&#xff1a; https://huggingface.co/blog/lora https://github.com/huggingface/diffusers/blob/main/examples/text_to_image/train_text_to_image_lora.py http…

UMI 命令行手册

Translate to English 命令行手册&#xff1a; README_CLI.mdHTTP接口手册&#xff1a; README_HTTP.md 命令行手册 基础说明 命令行调用入口就是主程序 Umi-OCR.exe 。如果你使用的是备用启动器&#xff08;如UmiOCR-data/RUN_GUI.bat&#xff09;&#xff0c;可能无法使用…

【TS】TypeScript 原始数据类型深度解析

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript 原始数据类型深度解析一、引言二、基础原始数据类型2.1 boolean2.2 …