当前位置: 首页 > news >正文

NPM 基础

介绍

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.lryc.cn/news/344340.html

相关文章:

  • WPF之创建无外观控件
  • MySQL利用变量进行查询操作
  • 算法--动态规划
  • Python基础详解一
  • 3.SpringSecurity基本原理
  • Cesium--加载天地图
  • 2024蓝桥杯CTF writeUP--packet
  • C++容器——deque
  • docker-compose安装es+kibana 8.12.2
  • websevere服务器从零搭建到上线(二)|Linux上的五种IO模型
  • STM32外设编程指南:GPIO、UART、SPI和I2C
  • git对远程和本地分支进行重命名
  • if 语句逻辑判断顺序
  • 第IV章-Ⅱ Vue3中的插槽使用
  • 【半个月我拿下了软考证】软件设计师高频考点--系统化教学-网络安全
  • E2PROM读写函数
  • MySql中什么是回表? 如何减少回表的次数
  • 【Linux】目录和文件相关的命令,补充:centos7系统目录结构
  • 【读点论文】SAM-LIGHTENING: A LIGHTWEIGHT SEGMENT ANYTHING MODEL,改进自注意力机制,然后知识蒸馏提点
  • PostgreSQL函数和运算符
  • 使用网络工具监控网络性能
  • Gradle基础笔记
  • QT+网络调试助手+TCP客户端
  • 数据库调优-SQL语句优化
  • h函数 render函数 JSX基本用法
  • 购物车操作
  • 华为手机 鸿蒙系统-android studio识别调试设备,开启adb调试权限
  • 计算机网络——Dijkstra路由算法
  • AI智能化逐渐趋于成熟后,预测今后最吃香的开发职业
  • Acwing2024蓝桥杯BFS