Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel, NPM: Command "mix" not found

Does anyone have an idea why it throws the following error and how to fix it? I have also tried to reinstall all packages using npm install several times. Reinstalling NodeJS on Windows didn't work; I'm using Laravel 8.22.0.

enter image description here

Full Log

0 verbose cli [
0 verbose cli   'D:\\Programme\\NodeJS\\node.exe',
0 verbose cli   'D:\\Programme\\NodeJS\\node_modules\\npm\\bin\\npm-cli.js',
0 verbose cli   'run',
0 verbose cli   'development'
0 verbose cli ]
1 info using [email protected]
2 info using [email protected]
3 timing config:load:defaults Completed in 1ms
4 timing config:load:file:D:\Programme\NodeJS\node_modules\npm\npmrc Completed in 2ms
5 timing config:load:builtin Completed in 2ms
6 timing config:load:cli Completed in 1ms
7 timing config:load:env Completed in 0ms
8 timing config:load:file:D:\My\Path\.npmrc 33,,,,,,,,Completed in 0ms
9 timing config:load:project Completed in 1ms
10 timing config:load:file:C:\Users\Privat\.npmrc Completed in 1ms
11 timing config:load:user Completed in 1ms
12 timing config:load:file:C:\Users\Privat\AppData\Roaming\npm\etc\npmrc Completed in 0ms
13 timing config:load:global Completed in 0ms
14 timing config:load:cafile Completed in 0ms
15 timing config:load:validate Completed in 1ms
16 timing config:load:setUserAgent Completed in 0ms
17 timing config:load:setEnvs Completed in 1ms
18 timing config:load Completed in 8ms
19 verbose npm-session 8b04ab779a67efab
20 timing npm:load Completed in 18ms
21 timing command:run-script Completed in 23ms
22 verbose stack Error: command failed
22 verbose stack     at ChildProcess.<anonymous> 
(D:\Programme\NodeJS\node_modules\npm\node_modules\@npmcli\promise-spawn\index.js:64:27)
22 verbose stack     at ChildProcess.emit (node:events:376:20)
22 verbose stack     at maybeClose (node:internal/child_process:1063:16)
22 verbose stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:295:5)
23 verbose cwd D:\My\Path
24 verbose Windows_NT 10.0.19042
25 verbose argv "D:\\Programme\\NodeJS\\node.exe" "D:\\Programme\\NodeJS\\node_modules\\npm\\bin\\npm-cli.js" "run" "development"
26 verbose node v15.5.1
27 verbose npm  v7.3.0
28 error code 1
29 error path D:\My\Path\IDE
30 error command failed
31 error command C:\WINDOWS\system32\cmd.exe /d /s /c mix
32 verbose exit 1

package.json

{
    "private": true,
    "scripts": {
        "dev": "npm run development",
        "development": "mix",
        "watch": "mix watch",
        "watch-poll": "mix watch -- --watch-options-poll=1000",
        "hot": "mix watch --hot",
        "prod": "npm run production",
        "production": "mix --production"
    },
    "devDependencies": {
        "axios": "^0.21.1",
        "bootstrap": "^4.0.0",
        "clean-webpack-plugin": "^3.0.0",
        "cross-env": "^5.1",
        "jquery": "^3.2",
        "laravel-mix": "^5.0.5",
        "less": "^3.12.2",
        "less-loader": "^7.0.0",
        "lodash": "^4.17.13",
        "popper.js": "^1.12",
        "resolve-url-loader": "^3.1.2",
        "sass": "^1.20.1",
        "sass-loader": "7.*",
        "vue": "^2.5.17",
        "vue-template-compiler": "^2.6.10"
    },
    "dependencies": {
        "bootstrap-vue": "^2.21.2",
        "uglify-js": "^3.10.3"
    }
}
like image 734
Pinnokkio Avatar asked Jan 14 '21 11:01

Pinnokkio


People also ask

How do you do npm clean install?

There are two ways to clean up the node_modules folder: Delete the folder and reinstall. Use npm prune (starting with npm version 6)

What is npm run watch?

npm run watch always keeps running. It will watch your files for changes. So if you for example make a change in resources/assets/js/app. js and save the file, it will compile again.


Video Answer


6 Answers

I tried many solutions but only this worked for me:

First, update your laravel-mix

npm install laravel-mix@latest

Then do a clean npm install:

npm clean-install

that should fix the laravel 8 mix error.

like image 52
Lonare Avatar answered Oct 24 '22 06:10

Lonare


In case somebody has a similar issue.

NPM is moody. Sometimes it's worth to try deleting all modules and install them again:

on Linux it's a simple command: rm -rf node_modules in a project root folder,

than just run npm install again.

like image 36
smidkristian Avatar answered Oct 24 '22 06:10

smidkristian


You will need to bump your Laravel Mix, SASS Loader dependencies to the latest and install PostCSS and Webpack.

npm i --save-dev laravel-mix@latest && 
npm i --save-dev sass-loader@latest && 
npm i --save-dev postcss@latest && 
npm i --save-dev webpack@latest

You should now have Laravel Mix version 6, so the only remaining step is to compile your assets. Then, use the new Mix executable or use npm.

npx mix -p

OR

npm run prod

package.json

{
    "private": true,
    "scripts": {
        "dev": "npm run development",
        "development": "mix",
        "watch": "mix watch",
        "watch-poll": "mix watch -- --watch-options-poll=1000",
        "hot": "mix watch --hot",
        "prod": "npm run production",
        "production": "mix --production"
    },
    "devDependencies": {
        "axios": "^0.21.1",
        "bootstrap": "^4.0.0",
        "bootstrap-vue": "^2.21.2",
        "clean-webpack-plugin": "^3.0.0",
        "cross-env": "^5.1",
        "jquery": "^3.2",
        "laravel-mix": "^6.0.9",
        "less": "^3.12.2",
        "less-loader": "^7.0.0",
        "lodash": "^4.17.13",
        "popper.js": "^1.12",
        "postcss": "^8.2.4",
        "resolve-url-loader": "^3.1.2",
        "sass": "^1.20.1",
        "sass-loader": "^10.1.1",
        "uglify-js": "^3.10.3",
        "vue": "^2.5.17",
        "vue-template-compiler": "^2.6.10",
        "webpack": "^5.14.0"
    }
}
like image 8
Karl Hill Avatar answered Oct 24 '22 05:10

Karl Hill


Best method to fix mix not found error is to reinstall npm using the command:
npm clean-install

like image 5
Digi Coder Avatar answered Oct 24 '22 04:10

Digi Coder


Recently laravel mix has been update to laravel mix 6 so I would advise to check the current version of npm/node you are using and the try to upgrade it to the latest version.

npm -v

You can upgrade to the latest version of npm using:

npm install -g npm@latest

Or upgrade to the most recent release:

npm install -g npm@next
like image 2
WilliamDk Avatar answered Oct 24 '22 06:10

WilliamDk


npm install laravel-mix@latest

and you may need to install vue-loader legacy peer dependencies. Generally it gets installed or updated automatically during npm run dev

like image 2
Md Nurul Afsar Pervez Avatar answered Oct 24 '22 05:10

Md Nurul Afsar Pervez