寒假学习记录17:包管理器(包管理工具)
概念
包(package)
包含元数据的库,这些元数据包括:名称,描述,git主页,许可证协议,作者,依赖.....
库(library,简称lib)
以一个或多个模块组成的完整功能块,为开发中某一方面的问题提供完整的解决方案
模块(module)
通常以单个文件形式存在的功能片段,入口文件通常称之为入口模块或主模块

背景
CommonJS的出现,使node环境下的JS代码可以用模块更加细粒度的划分。一个类,一个函数,一个对象,一个配置等待均可以作为模块,这种细粒度的划分,是开发大型应用的基石
为了解决在开发过程中遇到的常见问题,比如加密,提供常见的工具方法,模拟数据等待,一时间,在前端社区涌现了大量的第三方库。这些库使用CommonJS标准书写而成,非常容易使用
然而,在下载使用这些第三方库的时候,遇到难以处理的问题:
1.下载过程繁琐
2.如果该库需要依赖其他库,还需要按照要求先下载其他库
3.开发环境中安装大量的库如何在生产环境中还原,又如何区分
4.更新一个库极度麻烦
5.自己开发的库,如何在下一次开发使用
以上问题,就是包管理工具需要解决的问题
前端包管理器
npm
npm --> node package manager (node包管理器)
npm之所以要运行在node环境,而不是浏览器环境,根本原因是因为浏览器环境无法提供下载,删除,读取本地文件的功能。而node属于服务器环境,没有浏览器的种种限制,理论上可以完全掌控运行node的计算机
npm由三部分组成
1.registry:入口
可以把它想象成一个庞大的数据库
第三方库的开发者,将自己的库按照npm的规范,打包上传到数据库中
使用者通过统一的地址下载第三方包
2.官网
查询包
注册,登录,管理个人信息
3.CLI:command-line interface 命令行接口
安装好npm后,通过CLI来使用npm的各种功能
npm6之后,npm和yarn几乎就没有差距了
yarn
它仍然使用npm的registry,不过提供了全新CLI来对包进行管理
npm的问题
1.依赖目录嵌套层次深
2.下载速度慢
3.控制台输出繁杂
4.工程移植问题
yarn的优点
使用了扁平的目录结构
并行下载
使用本地缓存
控制台仅输出关键信息
使用yarn-lock文件记录确切依赖
增加了某些功能强大的命令
让既有的命令更加语义化
本地安装的CLI工具可以使用yarn直接启动
将全局安装的目录当作一个普通的工程,生成package.json文件,便于全局安装移植
cnpm
为解决国内用户连接npm registry缓慢的问题,淘宝搭建了自己的registry,即淘宝npm镜像源
过去,npm没有提供修改registry的功能,因此,淘宝提供了一个CLI工具即cnpm,它支持除了npm publish以外的所有命令,只不过连接的是淘宝镜像源
如今,npm已经支持修改registry了,可能cnpm唯一的作用就是和npm共存
即如果要使用官方源,则使用npm,如果使用淘宝源,则使用cnpm
pnpm
pnpm是一种新起的包管理器
pnpm优势
目前,安装效率高于npm和yarn
极其简洁的node_modules目录
避免了开发时使用间接依赖的问题
能极大的降低磁盘空间的占用
相关文章:
寒假学习记录17:包管理器(包管理工具)
概念 包(package) 包含元数据的库,这些元数据包括:名称,描述,git主页,许可证协议,作者,依赖..... 库(library,简称lib) 以一个或多个模…...
【AIGC】Stable Diffusion的常见错误
Stable Diffusion 在使用过程中可能会遇到各种各样的错误。以下是一些常见的错误以及可能的解决方案: 模型加载错误:可能出现模型文件损坏或缺失的情况。解决方案包括重新下载模型文件,确保文件完整并放置在正确的位置。 依赖项错误&#x…...
线段树解决-----P1161 开灯 P1047 [NOIP2005 普及组] 校门外的树 python解法
# [NOIP2005 普及组] 校门外的树 ## 题目描述 某校大门外长度为 l 的马路上有一排树,每两棵相邻的树之间的间隔都是 1 米。我们可以把马路看成一个数轴,马路的一端在数轴 0 的位置,另一端在 l的位置;数轴上的每个整数点…...
学习总结16
# 【模板】最小生成树 ## 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出 orz。 ## 输入格式 第一行包含两个整数 N,M,表示该图共有 N 个结点和 M 条无向边。 接下来 M 行每行包含三个整数 …...
问题:从完整的问题解决过程来看,( )是首要环节。A.理解问题 B.提出假设C.发现问题 D.检验假设 #学习方法#学习方法
问题:从完整的问题解决过程来看,( )是首要环节。A.理解问题 B.提出假设C.发现问题 D.检验假设 A.理解问题 B.提出假设 C.发现问题 参考答案如图所示...
服务器感染了.mallox勒索病毒,如何确保数据文件完整恢复?
导言: 在当今数字化的世界中,恶意软件已成为企业和个人数据安全的一大威胁,其中.mallox勒索病毒是最为恶劣的之一。本文91数据恢复将介绍.mallox勒索病毒的特点,以及如何恢复被其加密的数据文件以及预防措施。 如果您正在经历勒索…...
Android java基础_多态性
一.Android Java基础_多态性 向上转换:只能定义被子类覆写的方法,不能调用在子类中定义的方法。 class Father {private int money; public int getMoney() {return money; }public void setMoney(int money) {this.money money; }public void printInfo() {Syst…...
面试前的准备
目录: 面试前的准备Java程序员校招与社招的区别校招与社招的区别:Java程序员投递简的正确方式投递简历时的误区简历投递时间Java程序员如何应对面试邀约Java程序员如何对公司做背调面试前的技术准备 面试前的准备 Java程序员校招与社招的区别 校招和社招…...
前端架构: 本地调试脚手架的2种方式
一、 调试简单的脚手架方式 假定脚手架名称是 xxx 1 )方式1 在xxx脚手架项目目录的上一级,执行 npm i -g xxx这时候,就可以本地调试脚手架,在前文中已经说明软链的作用参考:https://blog.csdn.net/Tyro_java/article…...
现阶段适用于 单一架构 还是 分布式架构 ?
单体架构: 优势:简单直接,易于理解和开发,适用于小型应用或刚刚开始的项目。劣势:扩展性受限,只能通过增加服务器的数量来提高处理能力;所有模块都部署在一个单独的服务器或容器中,…...
掌握Go并发:Go语言并发编程深度解析
🏷️个人主页:鼠鼠我捏,要死了捏的主页 🏷️系列专栏:Golang全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&…...
创建一个多进程服务器和多线程服务器
多进程服务器 #include<myhead.h> #define PORT 8888 //端口号 #define IP "192.168.10.10" //IP地址//定义信号处理函数,用于回收僵尸进程 void handler(int signo) {if(signo SIGCHLD){while(waitpid(-1, NULL, WNOHAN…...
相机图像质量研究(18)常见问题总结:CMOS期间对成像的影响--CFA
系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…...
18.谈谈你对JSON的理解
JSON 是一种基于文本的轻量级的数据交换格式。它可以被任何的编程语言读取和作为数据格式来传递。 在项目开发中,使用 JSON 作为前后端数据交换的方式。在前端通过将一个符合 JSON 格式的数据结构序列化为 JSON 字符串,然后将它传递到后端,后…...
绝地求生:“觉醒之旅”通行证曝光,西游主题通行证及成长型武器即将上线
随着27赛季即将结束,有关28.1版本的皮肤及通行证内容也被爆料出来,本次通行证为工坊通行证,和去年四圣兽通行证为同一类型,将于2月7日更新至正式服 除了通行证获取工坊币还是可以开箱获取并兑换一些奖励 先看通行证 四个套装应该分…...
JS如何判断普通函数与异步(async)函数
这里可以先打印一下普通函数和异步(async)函数的结构,如下图 可以看出两者原型链,普通函数的原型链指向的是一个函数,异步(async)函数原型链指向的是一个AsyncFunction,这时就会想到…...
ndk-r20b 编译 boost 1.74。
ndk-r20b 编译 boost 1.74,这是 ndk-r20b 支持得最大 boost 版本,再大就没法编译支持了,本文介绍方法是完整编译,不需要完整编译请转移到github,boost for android 得开源项目。 1.74 boost ,安卓上面得版本…...
尚硅谷最新Node.js 学习笔记(四)
目录 八、express框架 8.1、express介绍 8.2、express使用 express下载 express初体验 8.3、express路由 什么是路由? 路由的使用 获取请求参数 获取路由参数 8.4、express响应设置 8.5、express中间件 什么是中间件? 中间件的作用 中间件…...
掌握XGBoost:GPU 加速与性能优化
导言 XGBoost是一种强大的机器学习算法,但在处理大规模数据时,传统的CPU计算可能会变得缓慢。为了提高性能,XGBoost可以利用GPU进行加速。本教程将介绍如何在Python中使用XGBoost进行GPU加速以及性能优化的方法,并提供相应的代码…...
【2024年毕设系列】如何使用Anaconda和Pycharm
【2024年毕设系列】如何使用Anaconda和Pycharm 视频教程地址:【2024毕设系列】Anaconda和Pycharm如何使用_哔哩哔哩 Hi,各位好久不见,这里是肆十二,首先在这里给大伙拜年了。 诸位过完年之后估计又要开始为了大作业和毕业设计头疼…...
深度解析Cursor试用重置工具:解决“You‘ve reached your trial request limit“的完整方案
深度解析Cursor试用重置工具:解决"Youve reached your trial request limit"的完整方案 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on…...
OpenClaw成本优化:Qwen3.5-9B自部署接口降低token消耗实践
OpenClaw成本优化:Qwen3.5-9B自部署接口降低token消耗实践 1. 为什么需要关注OpenClaw的token消耗? 去年夏天,当我第一次用OpenClaw自动化处理月度报表时,收到了令人咋舌的账单——短短一周的自动化操作消耗了价值近200美元的AP…...
Mirage Flow互联网信息整合应用:智能爬虫与内容摘要生成系统
Mirage Flow互联网信息整合应用:智能爬虫与内容摘要生成系统 每天一睁眼,互联网上的信息就像潮水一样涌来。你想了解某个行业动态,或者追踪一个热点事件,光是打开几十个网页、一篇篇看下来,眼睛都花了,最后…...
Pixel Dream Workshop 学术研究辅助:快速生成论文插图与概念图
Pixel Dream Workshop 学术研究辅助:快速生成论文插图与概念图 1. 科研绘图的痛点与解决方案 科研工作者经常面临一个共同难题:如何高效制作专业、美观的学术图表。传统绘图软件学习曲线陡峭,而外包设计又成本高昂、周期长。Pixel Dream Wo…...
Linux下PCIe AER错误排查实战:从寄存器解析到故障定位
Linux下PCIe AER错误排查实战:从寄存器解析到故障定位 PCIe总线作为现代计算机系统中最重要的高速串行总线之一,其可靠性直接影响整个系统的稳定性。高级错误报告(Advanced Error Reporting,AER)机制是PCIe规范中提供…...
【附源码】FPGA三段式状态机在智能售货系统中的实战解析
1. 智能售货系统与FPGA的完美结合 自动售货机已经渗透到我们生活的各个角落,从地铁站到写字楼,随处可见它们的身影。但你是否想过,这些看似简单的机器背后隐藏着怎样的技术奥秘?作为一名在FPGA领域摸爬滚打多年的工程师ÿ…...
保姆级教程:在RHEL 8上彻底搞定X-Server远程连接,让xeyes不再报‘Error can‘t open display‘
深度解析RHEL 8远程X11连接:从原理到实战的全链路解决方案 当你在RHEL 8服务器上尝试通过SSH转发X11图形界面时,是否遇到过xeyes测试程序报出"Error: Cant open display"的困扰?这看似简单的错误背后,实际上隐藏着新版R…...
告别OpenCV DNN!在Windows上用C++和ONNX Runtime部署PyTorch模型(附完整代码)
告别OpenCV DNN:用ONNX Runtime实现C高效模型部署实战 如果你正在Windows平台上用C部署PyTorch模型,大概率已经体验过OpenCV DNN模块的"龟速"推理。当项目从实验室走向生产环境时,性能瓶颈往往就藏在这些看似不起眼的环节里。今天…...
往期精彩|阿尔茨海默病合集 | 以往高分文献分析,揭示阿尔茨海默病研究热点
阿尔茨海默病(AD)是在老年人群中最为普遍的神经退行性疾病,也是痴呆症的最常见原因,全球大约有2660万人受到影响。1、Neurology:新的血液生物标志物可以在阿尔茨海默病的早期阶段预测其进展2025年,巴塞罗那…...
Phi-3 Forest Laboratory 学术辅助:基于LaTeX的论文写作与公式编辑
Phi-3 Forest Laboratory 学术辅助:基于LaTeX的论文写作与公式编辑 写论文,尤其是理工科的论文,对很多学生和研究人员来说,是个既费时又费力的活儿。光是“相关工作”部分,就得翻遍文献,总结归纳ÿ…...
