什么是pnpm

pnpm是 Node.js 的替代包管理器。它是 npm 的直接替代品,但速度更快、效率更高。

为什么效率更高?当您安装软件包时,我们会将其保存在您机器上的全局存储中,然后我们会从中创建一个硬链接,而不是进行复制。对于模块的每个版本,磁盘上只保留一个副本。例如,当使用 npm 或 yarn 时,如果您有 100 个使用 lodash 的包,则磁盘上将有 100 个 lodash 副本。

pnpm 可让您节省数 GB 的磁盘空间!

pnpm优势

pnpm 拥有 Yarn 超过 npm 的所有附加功能:

  • 安全: 与 yarn 一样,pnpm 有一个包含所有已安装包校验和的特殊文件,用于在执行代码之前验证每个已安装包的完整性。
  • 离线模式: pnpm 将所有下载的包 tarball 保存在本地注册表镜像中。当包在本地可用时,它从不发出请求。使用该--offline参数可以完全禁止 HTTP 请求。
  • 速度: pnpm 不仅比 npm 快,而且比 yarn 快。无论是冷缓存还是热缓存,它都比 yarn 快。yarn 从缓存中复制文件,而 pnpm 只是从全局存储中链接它们。

与 npm 的差别

与 npm 不同的是,pnpm 会校验所有的参数。 比如,pnpm install --foo 会执行失败,因为 --foo 不是 pnpm install 的有效参数。

但是,某些依赖关系可能使用 npm_config_ 环境变量,其中 从 CLI 选项中填充。 在这种情况下,你有以下选择:

设置明确的环境变量:npm_config_foo=true pnpm install

用 --config.强制使用未知选项: pnpm install --config.foo

pnpm使用

官网: https://pnpm.js.org/installation/

全局安装

npm install pnpm -g

设置源

//查看源
pnpm config get registry 
//切换淘宝源
pnpm config set registry https://registry.npmmirror.com/

使用

pnpm install 包  // 
pnpm i 包
pnpm add 包    // -S  默认写入dependencies
pnpm add -D    // -D devDependencies
pnpm add -g    // 全局安装

移除

pnpm remove 包                            //移除包
pnpm remove 包 --global                   //移除全局包

更新

pnpm up                //更新所有依赖项
pnpm upgrade 包        //更新包
pnpm upgrade 包 --global   //更新全局包

设置存储路径

pnpm config set store-dir /path/to/.pnpm-store

个人使用

一些需要node-gyp的包一定要记得安装好

在系统上禁止使用脚本解决方法

# 以管理员身份运行power shell
set-executionpolicy remotesigned

总结

到此这篇关于pnpm的安装和使用的文章就介绍到这了,更多相关pnpm安装和使用内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

pnpm的安装和使用指南(推荐!)的更多相关文章

  1. Swift 正式开源, 包括 Swift 核心库和包管理器

    Swift团队很高兴宣布Swift开始开源新篇章。Swift编译器项目解析Swift语法,产生语义判断来帮助编写正确代码,利用LLVM生成机器指令。Swfit标准库项目包含所有核心类型和基础函数。Swift团队今天除了开源Swfit之外,还开源了两个项目:Swfit核心库项目和全新的Swift包管理器项目。Swift包管理器Swift包管理器是全新的项目,可以创建一个强大,用户友好的工具来构建和共享Swift代码。

  2. Swift开源的介绍

    Swift是由多种不同的项目组成的,提供一个构建软件的完整生态系统。Swift编译器项目解析Swift语法,产生语义判断来帮助编写正确代码,利用LLVM生成机器指令。Swift团队除了开源Swfit之外,还开源了两个项目:Swfit核心库项目全新的Swift包管理器项目。一.Swift包管理器Swift包管理器是全新的项目,可以创建一个强大,用户友好的工具来构建和共享Swift代码。SwiftPackageManager当前还是早期开发阶段。二.Swift核心库Swift核心库项目是更高级别的APIs集合

  3. Swift 包管理器教程

    Swift包管理器有助于极大地改进Swift生态系统,让Swift更容易使用、部署到没有Xcode的平台上,比如Linux。Swift包管理器还能解决在使用多个相互依赖的库时的“依赖地狱”的问题。重要的一点是,因为Swift3的原因,Swift包管理器只能在host平台上编译。Swiftwebapp也属于这种类别。Swift包管理器会编译库并运行测试。幸好,Swift包管理器允许我们这样做。

  4. Swift包管理器 – UIKit依赖关系

    我的项目中有一个Package.swift,如:当我运行swift构建我得到错误,如…我应该在哪里告诉swift包经理在哪里找到UIKit?Swift软件包管理器将可执行文件构建在OSX上运行;UIKit是iOS中的框架,无法访问.随着Swift软件包管理器的发展,可能会有iOS,tvOS和其他软件可以访问.OnDec4,2015,at5:39PM,DanielDunbarwrote:…对,现在我们只为主机平台编译.除此之外,我们目前没有任何知识您要定位的SDK或架构.我们也没有指定清单中什么平台目标兼容

  5. android SDK管理器,只显示已安装的包

    解决方法您是否以管理员身份运行尝试运行SDKManager?当它不作为管理员运行时,它总是为我加载或下载软件包.

  6. php-7.3.6 编译安装过程

    这篇文章主要介绍了php-7.3.6 编译安装过程,本文通过实例文字相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

  7. PHP默认安装产生系统漏洞

    当你下载PHP後,在它内含的安装文件中帮助了PHP在NTApacheWebServer的安装方式,其中的安装帮助会要你将底下这几行设置加到apache的httpd.conf设置文件中,而这个安装文件将导引你将你的系统门户大开。

  8. 怎样在UNIX系统下安装php3

    #cd/usr/src#tarxvzfapache_1.3.6.tar.gz(产生apache_1.3.6目录)#tarxvzfphp-3.0.8.tar.gz(产生php-3.0.8目录)#cdapache_1.3.6#./configure--prefix=/usr/local/apache(把Apache的安装目录定为/usr/local/apache)#cdphp-3.0.8#./conf

  9. PHP安装攻略:常见问题解答(一)

    请检查下列三个地方:请确认正在运行的APACHE执行文件是你最后编译成功的那一个。IIS服务器使用一个在安装时创建的匿名账号,这个账号需要运行php.exe的权限。

  10. 详解Ubuntu安装angular-cli遇到的坑

    这篇文章主要介绍了详解Ubuntu安装angular-cli遇到的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

随机推荐

  1. Error: Cannot find module ‘node:util‘问题解决

    控制台 安装 Vue-Cli 最后一步出现 Error: Cannot find module 'node:util' 问题解决方案1.问题C:\Windows\System32>cnpm install -g @vue/cli@4.0.3internal/modules/cjs/loader.js:638 throw err; &nbs

  2. yarn的安装和使用(全网最详细)

    一、yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。二、yarn的特点:速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。三、y

  3. 前端环境 本机可切换node多版本 问题源头是node使用的高版本

    前言投降投降 重头再来 重装环境 也就分分钟的事 偏要折腾 这下好了1天了 还没折腾出来问题的源头是node 使用的高版本 方案那就用 本机可切换多版本最终问题是因为nodejs的版本太高,导致的node-sass不兼容问题,我的node是v16.14.0的版本,项目中用了"node-sass": "^4.7.2"版本,无法匹配当前的node版本根据文章的提

  4. nodejs模块学习之connect解析

    这篇文章主要介绍了nodejs模块学习之connect解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. nodejs npm package.json中文文档

    这篇文章主要介绍了nodejs npm package.json中文文档,本文档中描述的很多行为都受npm-config(7)的影响,需要的朋友可以参考下

  6. 详解koa2学习中使用 async 、await、promise解决异步的问题

    这篇文章主要介绍了详解koa2学习中使用 async 、await、promise解决异步的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. Node.js编写爬虫的基本思路及抓取百度图片的实例分享

    这篇文章主要介绍了Node.js编写爬虫的基本思路及抓取百度图片的实例分享,其中作者提到了需要特别注意GBK转码的转码问题,需要的朋友可以参考下

  8. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. node.js三个步骤实现一个服务器及Express包使用

    这篇文章主要介绍了node.js三个步骤实现一个服务器及Express包使用,文章通过新建一个文件展开全文内容,具有一定的参考价值,需要的小伙伴可以参考一下

  10. node下使用UglifyJS压缩合并JS文件的方法

    下面小编就为大家分享一篇node下使用UglifyJS压缩合并JS文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

返回
顶部