antonwilhelm
antonwilhelm

Reputation: 7493

Monorepo with Lerna & Next.JS not working : Module not found

Not sure what I am doing wrong. I am trying to setup a monorepo with lerna & nextjs and have been following a tutorial but get stuck at this point.

My file structure looks exactly as specified in the tutorial:

lerna.json
package.json
packages
  --- components (React Components)
    --- package.json
    --- ...
  --- frontend (NEXTJS APP)
    --- package.json
    --- ... 

It worked fine so far, but now when I try to import components in my frontend nextjs application, it gives me a Module not found Error:

./pages/index.js:4:0

Module not found: Can't resolve 'components'

My package.json in the / (root) folder:

{
  "name": "root",
  "private": true,
  "devDependencies": {
    "lerna": "^4.0.0"
  }
}

package.json in packages/frontend (NextJS App) :

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "components": "0.0.0",
    "next": "11.1.2",
    "next-transpile-modules": "^8.0.0",
    "react": "17.0.2",
    "react-dom": "17.0.2"
  },
  "devDependencies": {
    "eslint": "7.32.0",
    "eslint-config-next": "11.1.2"
  }
}

package.json in the /packages/components folder:

{
  "name": "components",
  "version": "0.0.0",
  "description": "> TODO: description",
  "author": "Anton",
  "homepage": "",
  "license": "ISC",
  "main": "dist/index.js",
  "directories": {
    "lib": "lib",
    "test": "__tests__"
  },
  "files": [
    "lib"
  ],
  "scripts": {
    "test": "echo \"Error: run tests from root\" && exit 1",
    "dev": "microbundle watch --jsx React.createElement"
  },
  "source": "lib/index.js",
  "devDependencies": {
    "microbundle": "^0.13.3"
  }
}

I have been following the linked tutorial pretty much to the dot, I'm really not sure what's going on here, but then again, I am a beginner/low intermediate and would appreciate some help!

Upvotes: 2

Views: 3578

Answers (1)

Martin
Martin

Reputation: 11

Had the same issue following the tutorial here. The gotcha was that you have to run lerna bootstrap again from the root of the monorepo. For me this fixed it.

Upvotes: 1

Related Questions