NPM 基础

devtools/2024/9/19 12:03:25/ 标签: npm, 前端, node.js

介绍

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/devtools/34393.html

相关文章

图中有几个三角形

让我们先把三角形进行分类&#xff1a;1块组成的三角形、2块组成的三角形、依此类推。 1块组成的三角形有4个&#xff1a; 2块组成的三角形有&#xff1a;12,13,14,23,24,34.其中&#xff0c;14&#xff0c;23构不成三角形. 3块组成的三角形有&#xff1a;123,124,134,234。但…

Nginx(搭建高可用集群)

文章目录 1.基本介绍1.在微服务架构中的位置2.配置前提3.主从模式架构图 2.启动主Nginx和两个Tomcat1.启动linux的tomcat2.启动win的tomcat3.启动主Nginx&#xff0c;进入安装目录 ./sbin/nginx -c nginx.conf4.windows访问 http://look.sunxiansheng.cn:7777/search/cal.jsp 3…

arduino uno+LCD12864(ST7735S)+蓝牙模块实现贪吃蛇

1.前言&#xff1a; 1.1本实验实现的贪吃蛇能穿越边界&#xff0c;结束游戏的唯一条件是贪吃蛇到达指定长度 1.2本实验所用LCD可能不是LCD12864&#xff0c;LCD12864所用库为u8glib&#xff0c;笔者在词库中并没有找到型号为ST77355的初始化函数&#xff0c;而是在ucglib中找到…

ComfyUI 完全入门:安装部署

在AI绘画领域&#xff0c;Stable Diffusion 因其开源特性而受到广泛的关注和支持&#xff0c;背后聚拢了一大批的应用开发者和艺术创作者&#xff0c;是AI绘画领域当之无愧的王者。 目前使用 Stable Diffusion 进行创作的工具主要有两个&#xff1a;Stable Diffusion WebUI 和…

Linux常见指令(三)

Linux下的基本指令大全 下面将Linux指令分成9种不同的主要类别&#xff1a; 文件管理指令&#xff1a;这些指令用于文件和目录的创建、编辑、复制、移动和删除。例如&#xff1a;ls&#xff08;列出目录内容&#xff09;&#xff0c;cp&#xff08;复制文件或目录&#xff09;…

python(简单制作注册登录系统)

制作一个注册登录模块 注册&#xff1a;将用户填入的账户和密码保存到一个文件(users.bin) 登陆&#xff1a;将用户填入账户密码和users.bin中保存的账户密码进行比对,如果账户和密码完全相同 那么登录成功&#xff0c;否则登录失败。 分析&#xff1a; 注册部分--主要涉及到的…

php 常见的判断语句和用法

在 PHP 中&#xff0c;常见的判断语句主要使用 if、else、elseif&#xff08;或 else if&#xff09;、switch 和 case。这些语句用于根据条件执行不同的代码块。以下是这些判断语句的详细用法&#xff1a; 1. if 语句 if 语句用于在条件为真时执行代码块。 if (条件) {// 如…

解锁WSL下Docker使用

简介&#xff1a;Windows Subsystem for Linux&#xff08;简称WSL&#xff09;是一个在Windows 10上能够运行原生Linux二进制可执行文件&#xff08;ELF格式&#xff09;的兼容层。正常情况下&#xff0c;WSL安装完成后直接使用docker会抛出以下报错&#xff1a; Cannot conn…

【数据结构(邓俊辉)学习笔记】列表03——有序列表

文章目录 0. 概述1. 唯一化2. 查找2.1 实现2.2 顺序查找2.3 复杂度 0. 概述 介绍下有序列表。 若列表中所有节点的逻辑次序与其大小次序完全一致&#xff0c;则称作有序列表&#xff08;sorted list&#xff09;。为保证节点之间可以定义次序&#xff0c;依然假定元素类型T直接…

综合性练习(后端代码练习4)——图书管理系统

目录 一、准备工作 二、约定前后端交互接口 1、需求分析 2、接口定义 &#xff08;1&#xff09;登录接口 &#xff08;2&#xff09;图书列表接口 三、服务器代码 &#xff08;1&#xff09;创建一个UserController类&#xff0c;实现登录验证接口 &#xff…

Bookends for Mac:文献管理工具

Bookends for Mac&#xff0c;一款专为学术、研究和写作领域设计的文献管理工具&#xff0c;以其强大而高效的功能深受用户喜爱。这款软件支持多种文件格式&#xff0c;如PDF、DOC、RTF等&#xff0c;能够自动提取文献的关键信息&#xff0c;如作者、标题、出版社等&#xff0c…

ASP.NET网上书店

摘要 本设计尝试用ASP.NET在网络上架构一个电子书城&#xff0c;以使每一位顾客不用出门在家里就能够通过上网来轻松购书。本文从理论和实践两个角度出发&#xff0c;对一个具有数据挖掘功能电子书城进行设计与实现分析。论文首先较为详尽地介绍了面向对象分析与设计的有关概念…

全栈开发之路——前端篇(1)介绍、框架确定、ide设置与项目创建

文章目录 前言一、前端框架React和VueReactVue 二、编译器选择和配置1.传统的下载和使用2.你可能遇到的问题1.ERR&#xff01; syscall mkdir2.vue : File C:\nodejs\node_global\vue.ps1 cannot be loaded because running scripts is disabled on3.出现乱码问题 3.运行Vue 三…

MySQL-存储引擎

将 连接管理&#xff0c;查询缓存&#xff0c;查询优化 等不影响真实数据存储的功能划分为MySQL Server 功能将真实存取数据的功能划分为 存储引擎&#xff0c;存储引擎即表的类型。 1、查看存储引擎 mysql> show engines; ---------------------------------------------…

代码随想录算法训练营第四十三天

今日事争取今日毕&#xff01;还一天就上班啦&#xff0c;陪产假结束&#xff0c;坚持坚持&#xff01; 1049. 最后一块石头的重量 II 思路主要是分成两个差不多大的两堆&#xff0c;所以需要用尽可能一半去减另一半即可。思路很重要啊&#xff0c;第一次确实想不明白。 clas…

Windows平台通过MobaXterm远程登录安装在VMware上的Linux系统(CentOS)

MobaXterm是一个功能强大的远程计算工具&#xff0c;它提供了一个综合的远程终端和图形化的X11服务器。MobaXterm旨在简化远程计算任务&#xff0c;提供了许多有用的功能&#xff0c;使远程访问和管理远程服务器变得更加方便&#xff0c;它提供了一个强大的终端模拟器&#xff…

【Python项目】基于opencv的的【疲劳检测系统】

技术简介&#xff1a;使用Python技术、OpenCV图像处理库、MYSQL数据库等实现。 系统简介&#xff1a;用户可以通过登录系统平台实现实时的人脸照片的拍摄和上传&#xff0c;结合上传图像的内容进行后台的图像预处理和运算分析&#xff0c;用户可以通过照片分析界面查看到当前检…

蓝桥杯练习系统(算法训练)ALGO-946 Q神的足球赛

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 足球赛上&#xff0c;只见Q神如闪电般的速度带球时而左&#xff0c;时而右&#xff0c;时而前&#xff0c;时而后&#xff…

数据库查询语言SQL介绍及基础命令[查看数据库/数据表,创建数据库/数据表,使用数据库/数据表,删除数据库/数据表,如何注释]

SQL介绍 SQL&#xff08;Structured Query Language&#xff09;是一种标准化的数据库查询语言&#xff0c;用于管理和操作关系数据库。SQL的主要作用包括数据查询、数据操作、数据定义和数据访问控制。它是与数据库交互的通用语言&#xff0c;被广泛应用于数据管理和分析。 …

Matlab|考虑极端天气线路脆弱性的配电网分布式电源和储能优化配置模型

1主要内容 程序主要参考《考虑极端天气线路脆弱性的配电网分布式电源配置优化模型-马宇帆》&#xff0c;针对极端天气严重威胁配电网安全稳定运行的问题。基于微气象、微地形对配电网的线路脆弱性进行分析&#xff0c;然后进行分布式电源接入位置与极端天气的关联性分析&#…