乐趣区

关于工程化:前端工程化之包管理器

包管理器

(1)pnpm(基于 hard link + symlink)

  • 基于硬链接机制(hard link)/ 内容寻址晋升包的装置速度

    依赖包被存储在一个全局的 store 目录下,不同的我的项目依赖同一个包 (版本雷同) 时,会硬链接至此地位,无需重新安装, 即便一个包的不同版本,pnpm 也会极大水平地复用之前版本的代码

  • 应用软连贯(符号链接,symlink, 相似于 windows 快捷方式)的非扁平的 node_modules 构造

    仅将我的项目的间接依赖项增加到 node_modules 的根目录下, 通过符号连贯查找虚构磁盘目录.pnpm 下的依赖包

node_modules/express/...     // 符号连贯
node_modules/.pnpm/express@4.17.1/node_modules/xxx     // virtual store

(2)npm

  • package-lock.json 锁定版本

(3)yarn

  • 并行装置
  • 缓存
  • yarn.lock 锁定版本

性能比照:
pnpm > yarn > npm

命令区别:

install all:   npm install / yarn / pnpm install
install:   npm install xx (-D) / yarn add xx (-D) / pnpm add xx (-D)
uninstall:   npm uninstall xx (-D) / yarn remove xx (-D) / pnpm remove add xx (-D)
update: npm update xx / yarn upgrade xx / pnpm update xx

相干文件:
.lock 文件
该文件记录了 package.json 依赖的模块,以及依赖的依赖,每次装置都是雷同的后果,解决我的项目问题,此文件用来对整个依赖树(我的项目中援用的模块以及模块依赖的模块)进行版本固定
cnpm install 无奈辨认该文件

.npmrc 文件
一些罕用的配置:
proxy, https-proxy:指定 npm 应用代理
registry:指定 npm 下载安装包的源(默认:https://registry.npmjs.org/)

nvm: node.js 版本管理工具
mrm: 镜像源管理工具

切换镜像源:(1)nrm use xxxx(2)npm install xxx -g --registry=url(3)npm config set registry  url
退出移动版