1.node包管理器pnpm的优势
- 磁盘空间效率:pnpm使用全局磁盘内容可寻址存储,通过硬链接和符号链接管理
node_modules
,从而减少磁盘空间的使用,同时保持目录的清洁。 - 安装速度:pnpm的安装速度比npm快近2倍,这得益于其共享依赖的机制,避免了在每个项目中重复安装相同包的副本。
- 依赖管理:pnpm不允许安装未在
package.json
中声明的包,这有助于避免因使用未声明模块而产生的潜在错误 。 - 支持单体仓库(monorepo):pnpm内置了对单体仓库的支持,允许在单个源码仓库中包含多个包,这在现代前端工程中非常有用。
- 安全性:pnpm创建的
node_modules
默认不是扁平结构,这意味着代码无法访问任意软件包,从而提高了安全性 。 - 性能优化:pnpm通过内容寻址的文件系统存储文件,避免了重复安装同一个包,即使是不同版本的包也会尽可能复用之前的代码,只添加新文件。
- 避免幽灵依赖:pnpm的依赖管理方式避免了npm和Yarn中常见的幽灵依赖问题,确保了依赖关系的清晰和项目的稳定性。
- 使用pnpm创建vue3项目
pnpm create vue
2.使用pnpm
2.1node版本与pnpm的版本兼容
2.2控制node版本,推荐使用nvm
推荐网址(中文版:安装和使用):nvm文档手册 - nvm是一个nodejs版本管理工具 - nvm中文网 (uihtm.com)
2.3全局安装pnpm,在当前node版本下全局安装一次,便可以直接使用
// 全局安装
npm i pnpm -g
//检查你的pnpm是否安装
pnpm -v
如何成功的话,会出现版本号
不成功可能会遇到pnpm在系统上禁止运行脚本问题
3.解决pnpm在系统上禁止运行脚本问题
3.1打开PowerShell
3.2输入命令
更改执行策略
- 更改策略为Unrestricted
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
- 更改策略为RemoteSigned
Set-ExecutionPolicy -Scope CurrentUser
RemoteSigned
- 可查看执行策略
默认情况下,策略为Restricted(严格)
Get-ExecutionPolicy
4.关于系统执行策略
在Windows操作系统中,当涉及到执行脚本时,特别是PowerShell脚本,ExecutionPolicy
是一个重要的设置,它决定了系统允许执行哪些类型的脚本。ExecutionPolicy
有几种不同的设置,其中包括 Restricted
、AllSigned
、RemoteSigned
、Unrestricted
等。这些设置可以应用于不同的作用域,以控制脚本执行的权限。
以下是ExecutionPolicy
应用的作用域及其含义:
- MachinePolicy:这是由系统策略决定的执行策略,通常由系统管理员设置,适用于计算机上的所有用户。如果设置了MachinePolicy,它将优先于其他策略。
- UserPolicy:这是由用户策略决定的执行策略,适用于特定的用户账户。如果设置了UserPolicy,它将优先于MachinePolicy,但不会影响其他用户。
- Process:这个作用域的执行策略仅适用于当前PowerShell进程。通过在PowerShell命令行中使用
Set-ExecutionPolicy
命令设置,例如:Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
。这种设置在PowerShell会话结束后将不再有效。 - CurrentUser:这个作用域的执行策略仅适用于当前登录的用户。它不由系统或用户策略控制,而是通过用户在PowerShell中设置的执行策略来确定。
- LocalMachine:这个作用域通常指的是MachinePolicy,即计算机级别的策略,适用于计算机上的所有用户和会话。
在PowerShell中,可以使用 Get-ExecutionPolicy -List
命令来查看当前所有作用域的执行策略设置。如果需要更改执行策略,可以使用 Set-ExecutionPolicy
命令,并指定相应的作用域,例如 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
。
注意:更改执行策略可能需要管理员权限,并且在生产环境中应谨慎操作,以避免潜在的安全风险。