问题描述
我会逐步编写所有内容。我从头到尾阅读并应用了网站上的所有页面(从“简介”到“高级”)。
出现可能也很有用,我不是专家软件开发人员。我想成为一种爱好。
当我在一个旧项目上工作时,我想再次尝试“ pnpm”,这是我以前尝试过但未能使用的。
使用
- 操作系统:Windows 10 x64
- 编辑:WebStorm
- 节点:14.15.0
项目: 我正在处理的项目是“离子角”项目。当我将其与“ npm”一起使用时,项目的总大小为“ 699 MB”。 问题: 安装“ pnpm”并制作设置文件之后,我打开了项目,并等待它使用“ pnpm install”命令安装软件包。一切麻烦都结束了。但是,该项目的总大小已增加到“ 1.11 GB”。
就我所做的来,一步一步地
- 安装nodejs LTS版本14.15.0 win64
- 运行PowerShell(以管理员身份)。
-
npm配置编辑
-
更改所有路径->前缀,缓存,tmp,userconfig,globalignorefile,globalconfig。
.npmrc文件更改列表;
prefix=C:\Users\mhy\npm\.npm-global cache=C:\Users\mhy\npm\.npm-cache tmp=C:\Users\mhy\npm\.npm-temp userconfig=C:\Users\mhy\npm\.npmrc globalignorefile=C:\Users\mhy\npm\.npm-global\etc\npmignore globalconfig=C:\Users\mhy\npm\.npm-global\etc\npmrc store-dir=C:\Users\mhy\pnpm\.pnpm-store global-dir=C:\Users\mhy\pnpm\pnpm-global npm-path=C:\Program Files\nodejs
- 重新启动计算机
- 安装pnpm PowerShell
- (调用WebRequest'https://raw.githubusercontent.com/pnpm/self-installer/master/install.js')。节点 )
- pnpm创建%AppData%Romaning%\ npm文件夹。并剪切文件夹将新路径粘贴到所有文件。 (pnpm,pnpm.cmd,pnpx,pnpx.cmd移至npm-path [nodejs安装文件夹])
- 根据网站上的叙述,我在“ .npmrc”文件中添加了以下路径。 加载.npmrc文件(两个相同的文件)并添加[store-dir,global-dir,npm-path->更改pnpm]路径
- 打开WebStorm ide并转到“设置”->“语言和框架”-> node.js和NPM->“选择程序包管理器”,将其手动更改为->“ npm-path”(因为我将“ pnpm,pnpm.cmd”文件移动了到这个位置。)
- 测试;
- 运行PowerShell并命令:pnpm add @ ionic / cli -E --global “ @ ionic / cli”已安装在指定位置,没有任何问题。
- 然后,使用PowerShell将命令“ pnpm add -E --global”安装在“ devDependencies”中。 它全部配置好了,没有任何问题。返回WebStorm ide,然后关闭PowerShell。
- 打开项目并向终端写入此命令“ pnpm install”
- pnpm好的,没问题。一切看起来都很好。
- 当我再次查看“ Project”文件夹的大小时,我发现它已经太大了。
- 旧大小699 MB新大小1.11 GB
- 仅node_module文件夹996 MB。
- “ pnpm”后项目文件夹的大小如下。
-
项目文件夹= 1.11 GB
-
node_module文件夹= 996 MB
-
node_module-> .pnpm(我想是虚拟存储文件夹)437 MB
-
node_module-> .ignored + .ignored_ast_types-flow,.ignored_eslint-scope .ignored_mime-types .ignoder_multicast-dns-service-types-> 244 MB
-
pnpm-global-> 269 MB
-
pnpm-store-> 540 MB
项目总大小+全局pnpm和存储= 2 GB(Windows资源管理器显示的文件夹大小为2gb) 我使用PowerShell并获取文件夹大小,列出所有传输到excel列的文件夹,并将文件夹总和= 767 MB
-
使用npm的旧大小= 699 MB
-
使用pnpm的新大小= 767 MB
我使用PowerShell命令
$ fso =新对象-com Scripting.FileSystemObject gci-目录
| select @{l='Size'; e={$fso.GetFolder($_.FullName).Size}},FullName
排序大小-降序`|| ft @ {l ='大小[MB]'; e = {'{0:N2}'-f($ _。Size / 1MB)}},全名|输出文件out.txt
实际上,我认为应该是这样的。它将把主程序包加载到一个文件夹中(例如C:\ pnpm-global),并在其他项目中使用它们时将其作为symlink-junction添加到其中。但是网站上有一条“ virtual-store-dir”的注释。注意:虚拟存储不能在多个项目之间共享。每个项目都应该有自己的虚拟存储。
我安装“ pnpm”是因为我的目标是减小项目大小(连接符号链接等)。
当我想对Internet上的“ pnpm”有所了解时,我也找不到任何资源。只有网站,资源非常有限。
我认为并没有太多用处,但是我不知道当一个项目使用了太多项目时会是什么样。
解决方法
测试Ionic / Angular项目的npm和pnpm,结果
使用npm
-
创建新的ionic + Angular空白项目,文件夹总大小= 341 MB 项目大小(无node_modules)= 573 KB
-
步骤->
- npm安装
- npm审核-> 1
- npm审核修复程序
- 保存项目和项目文件夹新大小= 408 MB
- ng构建
- ng服务
- 保存项目和项目文件夹新大小= 481 MB
使用pnpm
-
创建新的ionic + Angular空白项目,并删除node_module文件夹。 项目大小(无node_modules)= 573 KB
-
步骤->
- pnpm安装
- pnpm审核-> 1
- pnpm没有审核修复->手动安装@ angular-devkit / build-angular
- 保存项目和项目文件夹新大小= 375 MB
- ng build->编译错误@ ionic / angular
- 删除node_module文件夹
- pnpm install --dev->文件夹大小316 MB
- pnpm安装->文件夹大小375 MB
- ng build->错误离子子
- 删除项目文件夹
第二次尝试; (有效,但尺寸增加)!
- 更改默认程序包管理器= pnpm
- pnpm添加@ ionic / cli --global
- 离子启动
- 空白项目
- 但是安装软件包npm,而不使用pnpm
- 文件夹大小= 408 MB
- pnpm安装
- 文件夹大小= 783 MB
- pnpm运行构建(运行脚本ng构建)
- pnpm运行开始(运行脚本ng serve)
- 保存项目和项目文件夹新大小= 856 MB
第三次尝试
- 不创建离子启动命令,
- 复制文件新文件夹(不包含node_module),
- angular.json添加“ cli.packageManager pnpm”
- 复制.npmrc文件并添加“ shamefully-hoist = true”行
- pnpm我-可耻地吊起
- 文件夹大小= 375 MB
- ng构建
- ng服务
- 文件夹大小448 MB
结果适合我
-
如果我使用“ npm”,它将为481 MB。
-
如果我使用“ pnpm”,它将是448 MB。
-
两者之间存在33 MB的差异
就像我说的那样,我不是专家,我只是做了一个自我测试,想分享结果。
如果我使用错了,有人可以像我一样一步一步告诉我有关使用此pnpm的信息吗?