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

webpack的安装及其后序部分

npm install原理

这个其实就是npm从registry下载项目到本地,没有什么好说的

值得一提的是npm的缓存机制,如果多个项目都需要同一个版本的axios,每一次重新从registry中拉取的成本过大,所以会有缓存,如果缓存里有这个包那直接从缓存中直接拉取解压了

怎么确定找到的就是自己需要的那个包呢?是有对应的标识符的,这个标识符就在package-lock.json里面

版本的具体也可以在package-lock.json中找(具体安装的版本)

package-lock.json文件解析

name:项目的名称 

version:项目的版本

lockfileVersion:lock文件的版本

requires:使用requires来跟踪模块的依赖关系

dependencies:项目的依赖

        当前项目依赖axios,但是axios依赖follow-redireacts

        axios中的属性:

                version表示实际安装的axios版本

                resolved用来记录下载的地址,registry仓库中的位置

                requires/dependencies记录当前模块的依赖

                integrity用来从缓存中获取索引,在通过索引去获取压缩包文件

npm install原理深入

从npm5开始,npm就支持缓存策略了(来自yarn的压力),那么缓存有什么作用呢?

介素一副原理图:

npm其他命令

介绍一下npm其他的几个常用的命令

卸载某个依赖包:

npm uninstall package
npm uninstall package --save-dev
npm uninstall package -D

强制重新build:

npm rebuild

清除缓存:

npm cache clean

npm的命令很多捏:

https://docs.npmjs.com/cli-documentation/cli

可以查看文档查命令

yarn工具

yarn工具和npm差不多,所做的事情也差不多

即生npm,何生yarn

yarn其实是为了弥补早期npm的一些缺陷(安装依赖速度慢,版本依赖混乱)而出现的

从npm5版本开始,进行了很多的升级和改进,很多人依然喜欢用yarn

命令和使用都差不多

想要添加包的话是

yarn add

cnpm

每一种工具都有自己的适用场景

cnpm是中国适用

由于一些特殊原因,某些情况下没办法很好的从https://registry.npmjs.org下载下来一些需要的包

所以一些东西就会被存到镜像服务器仓库里

可以这样查看npm的镜像:

npm config get registry

也可以直接设置npm的镜像:

npm config set registry https://registry.npm.taobao.org

但是有的人就不希望再将npm的镜像修改了,一方面不希望随意修改npm原本从官方下来包的渠道,另一方面如果镜像挂了或者停止维护就又要改来改去了。。

这个时候就可以用cnpm并将它设置成淘宝的镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm config get registry #https://r.npm.taobao.org

http://www.lryc.cn/news/2396087.html

相关文章:

  • 如何利用自动生成文档工具打造出色的技术文档
  • 读《Go语言圣经记录》(二):深入理解Go语言的程序结构
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.7 R语言解题
  • nacos Sentinel zipkin docker运行
  • OpenCv高阶(二十)——dlib脸部轮廓绘制
  • pikachu靶场通关笔记08 XSS关卡04-DOM型XSS
  • python集成inotify-rsync实现跨服务器文件同步
  • 005 ElasticSearch 许可证过期问题
  • Spring AI 系列之使用 Spring AI 开发模型上下文协议(MCP)
  • [Python] Python运维:系统性能信息模块psutil和系统批量运维管理器paramiko
  • Linux 简单模拟实现C语言文件流
  • ArcPy错误处理与调试技巧(3)
  • 小程序使用npm包的方法
  • Asp.Net Core SignalR的协议协商问题
  • Rust 学习笔记:发布一个 crate 到 crates.io
  • 剪枝中的 `break` 与 `return` 区别详解
  • Spring Boot 4.0实战:构建高并发电商系统
  • Vert.x学习笔记-EventLoop与Context的关系
  • 2025030给荣品PRO-RK3566开发板单独升级Android13的boot.img
  • 由enctype-引出post与get的关系,最后深究至请求/响应报文
  • 排序算法衍生问题
  • Mac电脑上本地安装 redis并配置开启自启完整流程
  • STP(生成树协议)原理与配置
  • 搭建基于VsCode的ESP32的开发环境教程
  • 【MFC】初识MFC
  • C++.二分法教程
  • 如何通过数据分析优化项目决策
  • 2024年数维杯国际大学生数学建模挑战赛B题空间变量协同估计方法研究解题全过程论文及程序
  • leetcode hot100刷题日记——34.将有序数组转换为二叉搜索树
  • thinkphp 5.1 部分知识记录<一>