首页 前端知识 pnpm系列之add和install命令简介

pnpm系列之add和install命令简介

2024-08-21 10:08:42 前端知识 前端哥 429 731 我要收藏

pnpm作为最潮流的包管理工具,相信很多人早就使用,也知道为什么pnpm吊打npm,但是你还是很有必要学习下addinstall命令的细节,找出一些pnpm特色。

pnpm和npm命令的差异

npm命令pnpm命令
npm installpnpm install
npm i <pkg>pnpm add <pkg>
npm run <cmd>pnpm <cmd>

当你用pnpm执行一个未知命令,比如pnpm gopnpm也会在scripts里查找是否有匹配的命令,所以pnpm lintpnpm run lint是等价的。

如果没有找到命令,pnpm还会尝试在本地依赖中查找,比如pnpm eslint,就能够直接运行已经安装的eslint命令,这样的好处是不用全局安装就可以直接使用命令。

pnpm add

add命令想必大家都很熟悉了,和yarn add一样,和npm install类似。

需要注意的是,在workspace中使用时,想在项目根目录安装依赖需要加上-w,安装到packages请使用--filter参数指定名称。

举个栗子:

// 给某个app1包安装video.js
pnpm --filter app1 add video.js
命令意义
pnpm add sax保存到dependencies
pnpm add -D sax保存到devDependencies
pnpm add -O sax保存到optionalDependencies
pnpm add -g sax安装到全局

add命令有五种来源:

  • npm 源
  • workspace内
  • 本地文件
  • 从远端tar包安装
  • 从git安装

add命令支持的参数有:

  • –save-prod, -P:安装到dependencies
  • –save-dev, -D:安装到devDependencies
  • –save-optional, -O:安装到optionalDependencies
  • –save-exact, -E:保存的版本号会是一个具体的值,相当于锁死版本
  • –save-peer:安装到peerDependencies和devDependencies中
  • –ignore-workspace-root-check:允许在项目根目录添加依赖包
  • –global:安装到全局
  • –workspace:仅添加在 workspace 内找到的依赖项

pnpm install

被细分出来的install命令是用来安装项目所有依赖。

支持的参数

–force

强制重新安装依赖。

–offline
  • 默认值:false

如果设置了--offline参数,pnpm会只使用本地缓存的包,如果本地没有找到某个包,最终安装就会失败。

可以理解为离线模式。

–prefer-offline
  • 默认值:false

如果设置了--prefer-offline参数,本地没有的包会从远端安装,其他会优先使用本地缓存的包。

–prod,-P

如果环境变量中NODE_ENV被设置为production,那么pnpm不会安装任何属于devDependencies的包,如果有相关的包已经被安装了,则会清除这些包。 使用这个指令pnpm会忽略NODE_ENV,强制pnpmproduction的方式执行install命令。

–dev,-D

仅安装devDependencies并删除已安装的dependencies

–no-optional

不安装optionalDependencies依赖。

–lockfile-only

使用时,只更新 pnpm-lock.yamlpackage.json。 不写入 node_modules 目录。

–fix-lockfile

自动修复损坏的lock文件入口。

–frozen-lockfile
  • 默认值:
    • 非 CI: false
    • CI: true, 如果存在 lock 文件

如果设置 truepnpm 不会生成 lockfile,而且如果 lockfile是偏旧或不存在lockfile则会安装失败.

–reporter=name
  • 默认值:
    • TTY stdout: default
    • 非 TTY stdout: append-only

允许您选择将调试信息记录到终端, 以了解安装进度.

silent - 控制台不展示任何信息
default - TTY 的默认输出
append-only - 始终向末尾追加输出
ndjson - 打印所有ndjson格式日志,最详细的版本

–use-store-server

通过本地的store服务安装,安装完成后store服务不会自动关闭,需要使用pnpm server stop停止。

–shamefully-hoist

创建一个扁平化node_modules目录结构, 类似于npmyarn

不推荐使用,可能会导致未知问题。

–ignore-scripts

不执行任何项目中package.json以及依赖内定义的任何脚本。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/16381.html
标签
评论
发布的文章

CSS3 动画

2024-04-17 21:04:24

JWT(JSON Web Token)

2024-08-30 03:08:56

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!