33

My next.js app works on my machine and was working when deployed on Vercel but now it fails when building on Vercel with the following error:

I've tried deleting node_modules and running npm install a few times but with no joy.

Any help would be hugely appreciated. Thank you!

Running "npm run build" 20:43:24.926
tdwcks@1.0.0 build /vercel/5ccaedc9 20:43:24.926
next build 20:43:24.967
internal/modules/cjs/loader.js:983 20:43:24.967
throw err; 20:43:24.967
^ 20:43:24.967
Error: Cannot find module '../build/output/log' 20:43:24.967
Require stack: 20:43:24.967
- /vercel/5ccaedc9/node_modules/.bin/next 20:43:24.967
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15) 20:43:24.967
at Function.Module._load (internal/modules/cjs/loader.js:862:27) 20:43:24.967
at Module.require (internal/modules/cjs/loader.js:1042:19) 20:43:24.967
at require (internal/modules/cjs/helpers.js:77:18) 20:43:24.967
at Object. (/vercel/5ccaedc9/node_modules/.bin/next:2:46) 20:43:24.967
at Module._compile (internal/modules/cjs/loader.js:1156:30) 20:43:24.967
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10) 20:43:24.967
at Module.load (internal/modules/cjs/loader.js:1000:32) 20:43:24.967
at Function.Module._load (internal/modules/cjs/loader.js:899:14) 20:43:24.967
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) { 20:43:24.967
code: 'MODULE_NOT_FOUND', 20:43:24.967
requireStack: [ '/vercel/5ccaedc9/node_modules/.bin/next' ] 20:43:24.967
} 20:43:24.969
npm ERR! code ELIFECYCLE 20:43:24.969
npm ERR! errno 1 20:43:24.970
npm ERR! tdwcks@1.0.0 build: next build 20:43:24.970
npm ERR! Exit status 1 20:43:24.970
npm ERR! 20:43:24.970
npm ERR! Failed at the tdwcks@1.0.0 build script. 20:43:24.970
npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 20:43:24.974
npm ERR! A complete log of this run can be found in: 20:43:24.974
npm ERR! /vercel/.npm/_logs/2020-06-17T19_43_24_971Z-debug.log 20:43:24.979
Error: Command "npm run build" exited with 1 20:43:25.342
[dmesg] follows: 20:43:25.342
[ 962.449223] ecs-bridge: port 1(veth2a021300) entered disabled state 20:43:25.342
[ 962.453655] device veth2a021300 entered promiscuous mode 20:43:25.342
[ 962.457686] ecs-bridge: port 1(veth2a021300) entered blocking state 20:43:25.342
[ 962.462004] ecs-bridge: port 1(veth2a021300) entered forwarding state 20:43:26.242
Done with "package.json"

Here's my Package.json

{
  "name": "tdwcks",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "next",
    "build": "next build",
    "start": "next start"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "cjs": "0.0.11",
    "core-util-is": "^1.0.2",
    "framer-motion": "^1.11.0",
    "gray-matter": "^4.0.2",
    "next": "^9.4.4",
    "raw-loader": "^4.0.1",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-ga": "^3.0.0",
    "react-markdown": "^4.3.1",
    "react-player": "^2.2.0",
    "react-scripts": "^3.4.1"
  },
  "devDependencies": {
    "postcss-preset-env": "^6.7.0",
    "tailwindcss": "^1.4.6"
  }
}
Tom Wicks
  • 785
  • 2
  • 11
  • 28

17 Answers17

35

This answer worked for me: https://stackoverflow.com/a/55541435/3051080

TL;DR; update git cache:

git rm -r --cached .
git add --all .
git commit -a -m "Versioning untracked files"
git push origin master
Gus
  • 6,545
  • 4
  • 36
  • 39
  • 4
    This is what worked for me. Due to changing letter case of a folder in components folder. The cache didn't track it, meaning it was pushing the old version. – vSimak Jun 07 '22 at 19:02
  • Note that you might be able to do `git config core.ignorecase false` which will then show files with changed cases for you to re-commit – Deminetix Dec 31 '22 at 12:03
  • This worked for me. Also changed the folder from capitalized to lowercase – Michael Martell Jun 29 '23 at 22:40
24

I had to edit my package.json to use the next binary that ships in the node_modules/next directory:

"scripts": {
  "start": "node_modules/next/dist/bin/next start -p $PORT"
}

Not the most elegant fix but it works.

AryanJ-NYC
  • 2,529
  • 2
  • 20
  • 27
  • This is the only thing that actually works for me.. But why does NextJS expect the node_modules in a production deployment where we already ran the export command.. This is mind-boggling – Raul Butuc Oct 07 '20 at 23:26
  • Where are you deploying your code? I've had success using environment variables in Microsoft Azure: https://github.com/vercel/next.js/discussions/14897#discussioncomment-86108 – AryanJ-NYC Oct 07 '20 at 23:31
  • It's deployed to Azure DevOps (private repo) and picked by a custom pipeline. Works fine now, using your updated `package.json` line for `yarn start`. – Raul Butuc Oct 07 '20 at 23:39
  • This is the only thing that worked for me too. Is there something messed up locally that it doesn't look in node_modules for package.json commands? – James Feb 04 '22 at 22:14
19

This error typically happens if you're accidentally committing node_modules to your project's Git Repostiory.

Could you try to do the following?

  1. Ensure all changes have been committed and you have a clean directory.
  2. Run rm -rf node_modules (or delete the folder on Windows).
  3. Run git add -A then git commit -m "Remove all module files".
  4. Add node_modules to your .gitignore file (and save).
  5. Run git add -A then git commit -m "Update ignored files".
  6. Verify your directory is completely clean via git status.
  7. Then, run git push. This deployment should work on Vercel.
  8. Finally, re-run npm i or yarn depending on your package manager to get your local copy working.
Joe Haddad
  • 1,688
  • 12
  • 11
  • 1
    This is the answer, I found tons of question about this problems, and for me in this case it's works, only with the step 1 works for me, thanks!. – Raul Jan 11 '21 at 17:31
10

I'm having this exact same issue. I think it may be an internal issue with Vercel's deployment infrastructure. Notice the line it is failing on:

Error: Cannot find module '../build/output/log' 20:43:24.967
Require stack: 20:43:24.967
- /vercel/5ccaedc9/node_modules/.bin/next 20:43:24.967

My issue started yesterday, quite unexpectedly -- i.e. with a very simple commit. In my case, previously successful deploys also fail. Likewise, deleting the project and starting over did not help. I am in communication with Vercel support but they have not yet acknowledged the problem is on their end yet or offered any kind of solution.

edwardr
  • 260
  • 3
  • 8
  • 1
    That's interesting I'll get on to their support too. – Tom Wicks Jun 18 '20 at 07:43
  • 6
    I received a rather dubious but successful response from them. Is node_modules part of your repo? If so, try deleting it. Not sure why this would suddenly become a deployment issue, as I've made several hundred success deploys with this project previously. Nevertheless, whatever issue they were having seems to be fixed on my end by removing node_modules from the repo itself (also .next/, in case you had that there as well) – edwardr Jun 18 '20 at 20:10
  • 1
    Hello, If you are facing problems with Vercel, message us at https://vercel.com/support/request w/ a reproduction so we can assist you. – paulogdm Jul 06 '20 at 22:57
4

I had the same issue. In my github desktop I noticed that a file that was capitalized in the editor was not in the github desktop. Fixed the spelling to match what was showing on github and the project built successfully.

Sam Roehrich
  • 123
  • 1
  • 6
2

It seems like I have run into the same error.

The strange thing is that I have been building on Vercel all weekend without any problems, and it only started failing after I added Tailwind CSS to my project.

The first build with the Tailwind CSS addition succeded but styling was not loaded.

You can still see the result at https://rolfmadsen.now.sh/.

The local build with "vercel dev" still runs perfectly.

See the repository at https://github.com/rolfmadsen/search

Error from Build logs:

22:28:35.104  
Running "npm run build"
22:28:35.287  
> search@0.1.0 build /vercel/6ddf29b8
22:28:35.287  
> next build
22:28:35.328  
internal/modules/cjs/loader.js:983
22:28:35.329  
  throw err;
22:28:35.329  
  ^
22:28:35.329  
Error: Cannot find module '../build/output/log'
22:28:35.329  
Require stack:
22:28:35.329  
- /vercel/6ddf29b8/node_modules/.bin/next
22:28:35.329  
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
22:28:35.329  
    at Function.Module._load (internal/modules/cjs/loader.js:862:27)
22:28:35.329  
    at Module.require (internal/modules/cjs/loader.js:1042:19)
22:28:35.329  
    at require (internal/modules/cjs/helpers.js:77:18)
22:28:35.329  
    at Object.<anonymous> (/vercel/6ddf29b8/node_modules/.bin/next:2:46)
22:28:35.329  
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
22:28:35.329  
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
22:28:35.329  
    at Module.load (internal/modules/cjs/loader.js:1000:32)
22:28:35.329  
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
22:28:35.329  
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) {
22:28:35.329  
  code: 'MODULE_NOT_FOUND',
22:28:35.329  
  requireStack: [ '/vercel/6ddf29b8/node_modules/.bin/next' ]
22:28:35.329  
}
22:28:35.331  
npm ERR! code ELIFECYCLE
22:28:35.331  
npm ERR! errno 1
22:28:35.332  
npm ERR! search@0.1.0 build: `next build`
22:28:35.332  
npm ERR! Exit status 1
22:28:35.332  
npm ERR! 
22:28:35.332  
npm ERR! Failed at the search@0.1.0 build script.
22:28:35.332  
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
22:28:35.336  
npm ERR! A complete log of this run can be found in:
22:28:35.336  
npm ERR!     /vercel/.npm/_logs/2020-06-21T20_28_35_332Z-debug.log
22:28:35.342  
Error: Command "npm run build" exited with 1
rolfmadsen
  • 21
  • 3
2

in my case it looks like something to do with yarn and the next dependency i.e. inside node_modules/next/dist/bin/next having conflicts information about something.

never quite understand why after using next & building our code into production we still have to rely on the (relatively) heavy module next.

the whole notion of doing build is supposed so that it becomes independent of the build tools.

Archy Will He 何魏奇
  • 9,589
  • 4
  • 34
  • 50
  • 2
    This is the only thing that actually works for me.. But why does NextJS expect the node_modules in a production deployment where we already ran the export command.. This is mind-boggling – Raul Butuc Oct 07 '20 at 23:28
2

If the program runs normally by executing node_modules/next/dist/bin/next, you should suspect that the symbolic link of the file is broken.
In my case, it occurred during AWS deployment, and it occurred in the process of compressing the files for deployment.
So, I was able to solve the problem by adding the symlinks option during compression as shown below.

zip -r --symlinks xxxx

If it is deployed on a server such as AWS, like me, download the actually distributed program and Check the node_modules/.bin/next file. If the symbolic link is broken, you will need to find and fix the cause of the broken link during the deployment process.

cf) https://github.com/vercel/next.js/discussions/14897#

김동오
  • 69
  • 1
  • 5
1

I tried all of the above problems and nothing works.

The problem got solved when I changed the version of next.js. In case, someone is searching for a solution and nothing works...

Dimitar Stoev
  • 13
  • 1
  • 3
1

just use these commands in your GIT

git rm -r --cached .
git add --all .
git commit -a -m "Bugs"
git push origin master
Sidou Gmr
  • 138
  • 8
0

What about creating a .gitignore file, and adding the .next folder to it ?

Tenclea
  • 1,444
  • 2
  • 10
  • 23
  • Thanks for your help. I've tried both installing typescript and creating a .gitignore file for the .next folder but hasn't solved the issue sadly. – Tom Wicks Jun 17 '20 at 19:45
  • @TomWicks Is there a way for you to completely flush your Vercel app, or to delete this one to create another, and see if it changes anything ? – Tenclea Jun 17 '20 at 19:48
  • Updated the error message in the original question. I'll try creating another Vercel app. – Tom Wicks Jun 17 '20 at 20:00
  • still got the same issue :( – Tom Wicks Jun 17 '20 at 20:15
  • @TomWicks this might sound stupid, but do you remember doing anything that could have affected the build operation ? (Adding new modules, etc...) – Tenclea Jun 17 '20 at 21:11
0

How I resolved the missing module error on Vercel.

  1. install the package explicitly so that it is present in your package.json
  2. then import the supposed missing module into the app and use it.

For Example (just a scenario) // lets assume lodash is said to be the missing module,

1 Make sure it is present in your package.json

"dependencies": {
    // some dependencies ...
    "lodash": "^4.17.20",
    // some other dependencies ...
},

2 Import and use it in your app (usually, I just console.log the import in a non-production env.)

import LODASH from 'lodash'

if (process.env.NODE_ENV !== 'production') console.log(LODASH)
Tunji Oyeniran
  • 3,948
  • 1
  • 18
  • 16
0

I created the folder in lowercased, then, renamed it in capitalized, updated all the imports, but, for some reason, Github didn't update the folder name when I pushed the changes. I needed to renamed with a different name. It worked.

Sérgio Junior
  • 171
  • 1
  • 3
0

For me it was a problem with that specific package, when I looked for it in my package.json and under node_modules i couldn't find it. Even though it was working in local builds somehow.

MintWelsh
  • 1,199
  • 13
  • 22
0

I added a NODE_ENV="production" environment variable in vercel which hosed everything for me. Once I removed it, things recovered.

CodeManiak
  • 1,903
  • 4
  • 19
  • 32
0
  1. Delete package-lock.json (rm package-lock.json)
  2. Delete node_modules (rm -R node_modules)
  3. Switch versions of Node, which is easy if you have Node installed via NVM (nvm install 17, nvm use 17)
  4. Install dependencies again with new version of node (npm install)

I ran into this issue on a server running node 16.15.0 LTS, On my local machine node v16.12.0, and on another server running node v12.22.10 and it was not giving the error.

Took a look at my dependencies and decided to switch to Node 17.

devDependencies": {
    "@types/node": "17.0.23",
    "@types/react": "17.0.43",

After following the steps above and using Node 17 code ran successfully, and no more error.

Greggory Wiley
  • 660
  • 6
  • 16
0

If node_modules are transferred to server via git as stated in @Joe Haddad's answer. A different strategy for dealing with the issue worked better for me.

On the server, remove all node and next build files carried over to server, re-install and re-build

rm -R node_modules && rm -R .next && rm package-lock.json && npm install && npm run build

Edit or create .gitignore and add node_modules and .next then do the following.

Clear out cached files in git repo, re-add files respecting .gitignore, commit and push changes back to your local computer.

git rm -r --cached ./ && git add ./ && git commit -a -m "Removing ignored files" && git push

On local computer to sync up with newly ignored files. Does not affect local work environment and now you can push and pull successfully.

git pull
npm install

This approach is faster and saves you the trouble of dealing with git stuff on local machine and pushing back to the server.

Greggory Wiley
  • 660
  • 6
  • 16