Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🧐为什么选择pnpm包管理器以及相关注意点 #92

Closed
xiaoxian521 opened this issue Nov 3, 2021 · 2 comments
Closed

🧐为什么选择pnpm包管理器以及相关注意点 #92

xiaoxian521 opened this issue Nov 3, 2021 · 2 comments

Comments

@xiaoxian521
Copy link
Member

xiaoxian521 commented Nov 3, 2021

⚠️注意:如果你使用的是taobao源,请更换到npm源:npm config set registry https://registry.npmjs.org

  1. 节约磁盘空间并提升安装速度​
    当使用 npm 或 Yarn 时,如果你有100个项目使用了某个依赖,就会有100份该依赖的副本保存在硬盘上。 对于 pnpm ,依赖项将存储在一个内容可寻址的仓库中,因此:如果你用到了某依赖项的不同版本,那么只会将有差异的文件添加到仓库。例如,如果它有100个文件,而新版本只改变了其中1个文件。那么 pnpm update 只会向存储中心添加1个新文件,不会仅因为单一的改变而克隆整个依赖。所有文件都会存储在硬盘上的同一位置。 当多个包(package)被安装时,所有文件都会从同一位置创建硬链接,不会占用额外的磁盘空间。 这允许你跨项目地共享同一版本的依赖。最终你节省了大量与项目和依赖成比例的硬盘空间,并且拥有更快的安装速度!
  2. 创建非扁平化的 node_modules 文件夹​
    当使用 npm 安装依赖时,所有的依赖都会被提升到模块的根目录。 因此,项目可以访问到未被添加进 当前 项目的依赖。pnpm 使用软链的方式将项目的直接依赖添加进模块文件夹的根目录。
  3. 如果你使用过yarn,那么可以无学习成本的迁移,基本命令保持一致
  4. 注意点:
    image
    下面是我开发环境的版本
    image
  5. 如果你还没有安装pnpm,请执行下面命令:
    安装:npm install -g pnpm 或 npx pnpm add -g pnpm
    升级:pnpm add -g pnpm
    兼容性:https://pnpm.io/zh/installation#%E5%85%BC%E5%AE%B9%E6%80%A7
  6. 常用知识:推荐文章:https://blog.csdn.net/weixin_40817115/article/details/86611179
    image
@xiaoxian521 xiaoxian521 pinned this issue Nov 3, 2021
@xiaoxian521 xiaoxian521 changed the title 为什么选择pnpm包管理器以及相关注意点 🧐为什么选择pnpm包管理器以及相关注意点 Nov 3, 2021
This was referenced Nov 3, 2021
@xiaoxian521
Copy link
Member Author

xiaoxian521 commented Nov 7, 2021

使用pnpm后运行不了项目了,cross-env安装不上

node pnpm 版本请符合上面的要求 本地源请还原到npm 如果不知道怎么查看源 命令:npm config ls

@zgsgs
Copy link

zgsgs commented Nov 7, 2021

使用pnpm后运行不了项目了,cross-env安装不上

node pnpm 版本请符合上面的要求本地源请还原到npm 如果不知道怎么查看源命令:npm config ls
已经看到了,切换成npm的源就可以正常运行了,谢谢!

@xiaoxian521 xiaoxian521 unpinned this issue Jan 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants