npm run serve gives error sh: vue-cli-service: command not found in Vue Cli app

Viewed 1483

Yesterday I noticed something very odd after cloning my work groups repository. After installing dependencies with npm install, I could not start the devserver (or run any npm scripts) inside the project. Strange. So I then tried to create my own fresh new project with @vue/cli and the same thing happened there. Environment: Node: v14.15.0 NPM: v6.14.8 Globally installed Vue Cli: v4.5.8 macOS Catalina: v10.15.7

Package.json in project:

  "name": "eezer_app",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "core-js": "^3.6.5",
    "vue": "^2.6.11",
    "vue-router": "^3.2.0",
    "vuetify": "^2.2.11",
    "vuex": "^3.4.0"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-plugin-vuex": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "sass": "^1.19.0",
    "sass-loader": "^8.0.0",
    "vue-cli-plugin-vuetify": "~2.0.7",
    "vue-template-compiler": "^2.6.11",
    "vuetify-loader": "^1.3.0"
  }
}

Error output:

āžœ  eezer_app git:(master) āœ— npm run serve

> eezer_app@0.1.0 serve /Users/my-real-name/Documents/frontend-jensen/UX:UI-2/eezer_app
> vue-cli-service serve

sh: vue-cli-service: command not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! eezer_app@0.1.0 serve: `vue-cli-service serve`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the eezer_app@0.1.0 serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/my-real-name/.npm/_logs/2020-11-03T09_50_50_094Z-debug.log

Debug log file:

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'serve' ]
2 info using npm@6.14.8
3 info using node@v14.15.0
4 verbose run-script [ 'preserve', 'serve', 'postserve' ]
5 info lifecycle eezer_app@0.1.0~preserve: eezer_app@0.1.0
6 info lifecycle eezer_app@0.1.0~serve: eezer_app@0.1.0
7 verbose lifecycle eezer_app@0.1.0~serve: unsafe-perm in lifecycle true
8 verbose lifecycle eezer_app@0.1.0~serve: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/my-real-name/Documents/frontend-jensen/UX:UI-2/eezer_app/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
9 verbose lifecycle eezer_app@0.1.0~serve: CWD: /Users/my-real-name/Documents/frontend-jensen/UX:UI-2/eezer_app
10 silly lifecycle eezer_app@0.1.0~serve: Args: [ '-c', 'vue-cli-service serve' ]
11 info lifecycle eezer_app@0.1.0~serve: Failed to exec serve script
12 verbose stack Error: eezer_app@0.1.0 serve: `vue-cli-service serve`
12 verbose stack spawn ENOENT
12 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:48:18)
12 verbose stack     at ChildProcess.emit (events.js:315:20)
12 verbose stack     at maybeClose (internal/child_process.js:1048:16)
12 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
13 verbose pkgid eezer_app@0.1.0
14 verbose cwd /Users/my-real-name/Documents/frontend-jensen/UX:UI-2/eezer_app
15 verbose Darwin 19.6.0
16 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "serve"
17 verbose node v14.15.0
18 verbose npm  v6.14.8
19 error code ELIFECYCLE
20 error syscall spawn
21 error file sh
22 error errno ENOENT
23 error eezer_app@0.1.0 serve: `vue-cli-service serve`
23 error spawn ENOENT
24 error Failed at the eezer_app@0.1.0 serve script.
24 error This is probably not a problem with npm. There is likely additional logging output above.
25 verbose exit [ 1, true ]

Same error shows up in a freshly made Vue project created with vue create as well.

It seems that npm is trying to look for dependency packages globally instead of locally in node_modules, since I can run serve by manually selecting the script in local node_module .bin like this:

./node_modules/.bin/vue-cli-service serve

Then it starts perfectly without any fault, so there is no issue with installed node_modules etc. I have tried fixing this since yesterday with no results. I found tips to clear npm cache, delete local node_modules & package-lock.json but it does not work at all. I even re-installed CLT on my Mac.

What happened with my npm? Why does it seem to look for dependencies in my global node_module?

Appreciate any kind of tips since I have exhausted most of my options.

1 Answers

I updated Node, NPM, all my global node modules, ran brew update, reinstalled xcode: sudo rm -rf /Library/Developer/CommandLineTools then xcode-select --install and it seems to be working again.

Same error shows up in a freshly made Vue project created with vue create as well.

created a fresh vue project using @vue/cli and I was able to run npm run serve. Hopefully this helps for anyone else facing this issue.

Related