git: https://github.com/18236324510/nomo
我们使用pnpm
当做包管理工具,用pnpm workspace
来实现monorepo
。可以看下面参考文章里面的介绍,结合官网有个基础的了解。下面我们正式开始搭建。
npm install pnpm -g # 全局安装pnpm
pnpm init # 初始化package.json配置⽂件 私有库
pnpm install vue typescript -D # 全局下添加依赖
添加.npmrc
文件,
shamefully-hoist = true // 作用依赖包都扁平化的安装在node_modules下面
在项目根目录下面创建pnpm-workspace.yaml
配置文件。
packages:
- "packages/**" # 存放所有组件
- docs # 文档
- play # 测试组件
嗯,让我来解释一下。在pnpm中,如果你在workspace的根目录下运行pnpm add
命令添加一个包,pnpm会默认在workspace中的其他包中查找这个包。这意味着你不需要显式地添加@workspace:*
来告诉pnpm在workspace中查找这个包。
所以,如果你在workspace根目录下运行pnpm add cui-commitlint-config -D
,pnpm会自动在workspace中的其他包中查找并安装cui-commitlint-config
这个包,而不需要额外添加@workspace:*
。
或者重新建个文件夹
import { RuleConfigSeverity } from '@commitlint/types'
export default {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [
RuleConfigSeverity.Error,
'always',
[
'cui',
'build',
'chore',
'ci',
'docs',
'feat',
'fix',
'perf',
'refactor',
'revert',
'style',
'test',
],
],
},
}
在主包安装引用
export default {
extends: ['@nomo/commitlint'],
}
- 设置npm源,org的
- npm log
- npm whoami
- Npm publish
就是没登陆对
npm登陆超时,网上大部分方法不靠谱!!!,就是网络原因
出现错误的原因是,我在npm上的用户名是A,而我的包名是 @B/xxxx。
npm规定包名中,@后是用户名,我这里是B,而我的用户名是A。这就是报错的原因。
解决办法也很简单,修改包名,或者用B的账号publish就可以了
https://www.npmjs.cn/misc/scope/
https://docs.npmjs.com/creating-and-publishing-scoped-public-packages
启动报错
更新完pnpm报错,需要再更新pnpm版本
npm install pnpm -g