Lerna 的另外一种选择
	
		
			Sep 22, 2020
		
		
		
			
			611
			
		
	
想法来自 vue-next commit build: remove lerna
想要通过 monorepo 管理项目,Lerna 是一种选择,Lerna 提供了很多方便的脚本,但是对于一些场景 Lerna 是一种选择,但不是必须的,就像 vue-next 中弃用 Lerna 一样,通过以下几种配置也是可以达到 monorepo 的效果:
- 对于 TypeScript,使用 
tsconfig.json中的compileOptions.path - 对于 Jest,使用 
jest.config.js中的moduleNameMapping - 对于 Node.js,使用的是 Yarn Workspaces,在 package.json 中加入 workspaces,比如
{ "name": "demo", "devDependencies": { "vue": "3.0.0" }, "workspaces": [ "packages/*" ] } 
https://github.com/vuejs/vue-next/commit/cd5ba7cfcc5bc56392c293422188225cf42b9062?branch=cd5ba7cfcc5bc56392c293422188225cf42b9062&diff=split
https://classic.yarnpkg.com/blog/2017/08/02/introducing-workspaces/