Before following this guide, you must know that I’m using VSCode DevContainers, you can refer to my previous post on how to setup an enviroment for Astro, to know how I setup the NodeJs enviroment.
This guide is the same as : setting up a Nuxt Monorepo, except I’m not using the packages directory…yet, you can follow the original guide I you want to also learn how to setup shared components in a monorepo.
Initiate workspace
pnpm init
create the workspace yaml file
touch pnpm-workspace.yaml
Inside the yaml file, define the structure of the monorepo
packages:
# all packages in sub dirs of packages/ and apps/
- 'packages/**'
- 'apps/**'
Intiate a git repo
git init
create a .gitignore
and add the basic node exceptions
# .gitignore
node_modules
dist
build
Create a .npmrc
for vue compatibility, this was taken from the original post, referenced in the Pre-requisites.
touch .npmrc
shamefully-hoist=true
CD into the /app
directory to create the Nuxt applications
mkdir apps
cd apps/
Use PNPM to create Nuxt 3 apps
pnpm dlx nuxi init <PROJECT NAME>
pnpm dlx nuxi init <PROJECT NAME 2>
for every project made, modify their package.json to change the name and port
{
"name": "nuxt-app", //<--change name
"private": true,
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev --port=3010", //<-add port
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare"
},
"devDependencies": {
"@types/node": "^18",
"nuxt": "^3.5.0"
}
}
go back to the root folder and install dependiecies
cd..
pnpm i
run all projects unsing the pnpm recursive command from root folder
pnpm -r run dev
run only 1 project using the ‘filter’ command
pnpm --filter PROJECT_NAME run dev