创建pnpm工作空间,并将npm项目迁移至pnpm
前言
为什么使用pnpm
- pnpm 比 npm 快了近 2 倍
- node_modules 中的所有文件均克隆或硬链接自单一存储位置
- pnpm 内置了对单个源码仓库中包含多个软件包的支持
- pnpm 创建的 node_modules 默认并非扁平结构,因此代码无法对任意软件包进行访问
1、pnpm安装
windows安装
iwr https://get.pnpm.io/install.ps1 -useb | iex
查看是否安装成功,出现版本号证明安装成功
pnpm -v
2、配置工作空间
工作空间初始化
pnpm install
在生成的package.json
文件中添加
"private": true,
"workspaces": {
"packages": [
"projects/**"
]
},
创建pnpm-workspace.yaml
文件
packages:
# all packages in direct subdirs of packages/
- 'projects/**'
# all packages in subdirs of components/
- 'components/**'
# exclude packages that are inside test directories
- '!**/test/**'
projets/**
代表的是子项目所在文件夹
创建.npmrc
文件
shamefully-hoist = true
shamefully-hoist
用于提升依赖,将所安装的依赖进行扁平化处理,使根项目的依赖在其他子项目中也可以使用
3、创建自己的项目或从仓库中克隆
4、执行命令
pnpm install # 安装子项目依赖
5、手动安装vue-cli
pnpm add -w @vue/cli
常见问题
1、Syntax Error: Error: No PostCSS Config found in: D:\PnpmWorkspase\node_modules.pnpm\nprogress@0.2.0\node_modules\nprogress
解决办法:在工作空间根目录下创建文件postcss.config.js
module.exports = { plugins: { 'autoprefixer': { browsers: 'last 5 version' }}};
2、* ./cptable in D:/PnpmWorkspase/node_modules/.pnpm/xlsx-style@0.8.13/node_modules/xlsx-style/dist/cpexcel.js
解决办法:./node_modules\xlsx-style\dist中修改cpexcel.js的807行
var cpt = require('./cpt' + 'able');
#改为
var cpt = cptable;