JS
CV

Criando um monorepo com pnpm workspaces

mai 03, 2024 1 min - tempo de leitura

Para criar um monorepo com pnpm, precisaremos criar um arquivo chamado pnpm-workspace.yaml dentro do nosso repositório.

touch pnpm-workspace.yaml

Dentro do pnpm-workspace.yaml, vamos definir nossos pacotes. Ele terá uma estrutura semelhante a esta:

packages:
  - 'app'
  - 'api'
  - 'utils'
  - 'services'

Agora podemos fazer referência aos nossos pacotes do workspace da seguinte forma:

{  
	"dependencies": {  
		"@repo/utils": "workspace:*",
		"@repo/services": "workspace:*"  
	}  
}

Você pode encontrar mais detalhes na documentação do pnpm. E como podemos observar, muitos dos maiores frameworks do mercado adotam essa abordagem.

Bônus

Para otimizar nosso fluxo de desenvolvimento, podemos integrar o Turborepo, uma ferramenta que simplifica a execução de scripts em vários packages.json simultaneamente.