NPM 基础

server/2024/9/22 21:33:39/

介绍

npm 是 JavaScript 编程语言的一个包管理器,它允许开发者安装、共享和管理依赖项。npm 与 Node.js 紧密集成,是 Node.js 生态系统中不可或缺的一部分。它提供了一个命令行工具,使得开发者能够轻松地安装、配置和管理项目所需的各种包。

基本使用

一般来说,安装 nodejs 时,npm 会一起被安装,如果因为系统差异没有被一起安装,那么一般系统自带的包管理命令也会提供安装,例如 aptbrew 等。直接执行 xxx install npm 即可。

npm 的基本使用包括以下几个命令:

  • 安装包npm install <package-name>
  • 安装开发依赖npm install --save-dev <package-name>
  • 全局安装npm install -g <package-name>
  • 列出已安装的包npm list
  • 更新包npm update <package-name>
  • 卸载包npm uninstall <package-name>
  • 运行脚本npm run <script-name>

原理

npm 的工作原理基于以下几个核心概念:

  1. :JavaScript 库或工具,可以被其他项目使用。
  2. 包版本:遵循语义化版本控制(Semantic Versioning),通常是三段式的版本号。
  3. 依赖关系:项目所需的其他依赖包。
  4. 包锁文件package-lock.json):记录了项目确切的依赖树,确保不同环境中的一致性。
  5. npm 仓库:存储包的中心仓库,可以通过 https://www.npmjs.com/ 访问,当然也有很多其他的镜像源,可以通过命令切换仓库,例如:
npm config set registry https://registry.npm.taobao.org

常见问题

在使用 npm 时,可能会遇到的问题包括:

  • 权限问题:在安装全局包时可能会遇到权限问题,可以通过使用 sudo 命令或修改 npm 的配置来解决。
  • 网络问题:由于 npm 仓库在国外,有时可能会遇到网络访问缓慢的问题,可以通过设置镜像或使用其他仓库来解决。
  • 版本冲突:不同包之间可能会有版本依赖冲突,需要仔细管理依赖关系,一般情况下,优先考虑删除 node_modules 再重新安装。
  • SSL冲突:不推荐忽略冲突这种做法
// 临时忽略
npm install --silent --ignore-scripts
// 永久忽略
npm config set strict-ssl false

总结

npm 是一个强大的工具,它极大地简化了 JavaScript 项目的依赖管理。

通过理解 npm 的工作原理和基本命令,开发者可以更高效地进行项目开发和管理。

同时,解决在使用过程中遇到的常见问题也是提高开发效率的关键。


http://www.ppmy.cn/server/34224.html

相关文章

【SpringBoot】数据脱敏

文章目录 什么是数据脱敏JsonSerialize自定义Jackson注解定制脱敏策略定制JSON序列化实现脱敏工具类 定义Person类&#xff0c;对其数据脱敏模拟接口测试总结 什么是数据脱敏 数据脱敏&#xff0c;也称为数据的去隐私化或数据变形&#xff0c;是一种技术手段&#xff0c;用于对…

【C语言回顾】数据在内存中的存储

前言1. 概述2. 大小端字节序和字节序判断2.1 大端字节序&#xff08;Big-Endian&#xff09;2.2 小端字节序&#xff08;Little-Endian&#xff09;2.3 判断字节序的示例 3. 数据在内存中的存储3.1 整数在内存中的存储3.2 浮点数在内存中的存储 结语 ↓ 上期回顾: 【C语言回顾】…

kettle从入门到精通 第五十六课 ETL之kettle Microsoft Excel Output

1、9.4 版本的kettle中有两个Excel输出&#xff0c;Excel输出和Microsoft Excel输出。前者只支持xls格式&#xff0c;后者支持xls和xlsx两种格式&#xff0c;本节课主要讲解步骤Microsoft Excel输出&#xff0c;如下图所示&#xff1a; 1&#xff09;、步骤【生成记录】生成两条…

JVM组成之类加载器

类加载器&#xff08;ClassLoader&#xff09;&#xff1a;是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。 类加载器多数是有Java编写的&#xff0c;也有部分是c编写的&#xff0c;负责接收来自外部的二进制数据&#xff0c;然后执行JNI&#xff08;也就是本…

windows驱动开发-内核调度(一)

驱动层面的调度和同步一向是内核中比较困难的部分&#xff0c;和应用层不一样&#xff0c;内核位于系统进程下&#xff0c;所以它的调度和同步一旦出现纰漏&#xff0c;那会影响所有的程序&#xff0c;而内核并不具备对于这种情况下的纠错能力&#xff0c;没有异常手段能够让挂…

stylus详解与引入

Stylus 是一个 CSS 预处理器&#xff0c;它允许你使用类似编程语言的语法和特性来编写样式表&#xff0c;然后将其编译成标准的 CSS。Stylus 提供了许多有用的功能&#xff0c;如变量、嵌套规则、混合&#xff08;mixins&#xff09;、函数等&#xff0c;这些功能可以帮助你更有…

分布式领域计算模型及SparkRay实现对比

目录 一、分布式计算领域概览 二、Spark计算模型分析 三、Ray计算模型分析 3.1 需求分析 3.2 系统设计 3.3 系统实现 四、总结 一、分布式计算领域概览 当前分布式计算模型主要分为以下4种&#xff1a; Bulk Synchronous Parallel Model&#xff08;块同步并行模型&…

Unity 热更--AssetBundle学习笔记 1.0【AB包资源加载工具类的实现】

合集 - Unity学习笔记(13)1.Unity学习笔记–基础2023-11-012.Unity学习笔记–入门2023-10-293.Unity学习笔记–数据持久化之PlayerPrefs的使用2023-11-194.Unity学习笔记–数据持久化XML文件(1)2023-11-205.Unity学习笔记–数据持久化XML文件&#xff08;2&#xff09;2023-12-…