前端工程化3:使用lerna管理多包

1、 使用lerna管理多包

bash 复制代码
npm i lerna -g

2、使用lerna初始化项目

bash 复制代码
lerna init

初始化结构是这样的:

3、配置项目package.json文件

json 复制代码
"scripts": {
    "preinstall": "npx only-allow pnpm",
    "prepare": "husky install",
    "init": "pnpm install",
    "clean": "lerna run clean $$ rm -rf node_modules",
    "test": "lerna run test",
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs",
    "deploy":"bash deploy.sh",
    "publish": "lerna publish",
    "lint": "markdownlint README.md",
    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
  },
  "publishConfig": {
    "access": "public",
    "registry": "https://registry.npmjs.org/"
  }
  1. preinstall:: "npx only-allow pnpm" 项目中只能用pnpm包管理工具
  2. "prepare": "husky install"使用husky关联git hooks模版,为了加入commitlint
  3. "deploy":"bash deploy.sh"发包管理,打好的包拷贝到远程的repository,使得其他的开发者或者工程可以共享
  4. "publish": "lerna publish"这里的publish会把packages中的多宝都publish
  5. "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s"这里的changelog需要先全局安装,后面会讲

4、创建pnpm-workspace.yaml文件

"pnpm-workspace.yaml" 是 pnpm 管理的多包(monorepo)项目中用于定义工作区设置的文件。如果您在初始化项目时遇到创建这个文件的提示,通常是因为你正在使用支持 pnpm 工作区功能的工具或框架

使用命令行创建:

bash 复制代码
echo -e "packages: - 'packages/*'" > pnpm-workspace.yaml

5、使用lerna创建分包

bash 复制代码
lerna create demo1

现在就能在packages中看到新建的分包,结构这样:

6、配置分包主入口文件

package.json文件中修改:

javascript 复制代码
  "main": "index.js",

同时创建一个index.js文件,把默认的lib文件夹删除即可

7、发布npm包

javascript 复制代码
pnpm run publish

8、git action云构建

在git内配置action

持续更新中。。。。。。

相关推荐
Channing Lewis1 小时前
如何实现网页不用刷新也能更新
前端
努力搬砖的程序媛儿2 小时前
uniapp广告飘窗
前端·javascript·uni-app
dfh00l2 小时前
firefox屏蔽debugger()
前端·firefox
张人玉2 小时前
小白误入(需要一定的vue基础 )使用node建立服务器——vue前端登录注册页面连接到数据库
服务器·前端·vue.js
大大。2 小时前
element el-table合并单元格
前端·javascript·vue.js
一纸忘忧2 小时前
Bun 1.2 版本重磅更新,带来全方位升级体验
前端·javascript·node.js
杨.某某2 小时前
若依 v-hasPermi 自定义指令失效场景
前端·javascript·vue.js
猫猫村晨总3 小时前
基于 Vue3 + Canvas + Web Worker 实现高性能图像黑白转换工具的设计与实现
前端·vue3·canvas
浪浪山小白兔3 小时前
HTML5 常用事件详解
前端·html·html5
Python大数据分析@3 小时前
通俗的讲,网络爬虫到底是什么?
前端·爬虫·网络爬虫