Laravel,NPM:找不到命令“mix”

问题描述 投票:0回答:11

有谁知道为什么会抛出以下错误以及如何修复它?我还多次尝试使用

npm install
重新安装所有软件包。在 Windows 上重新安装 NodeJS 不起作用;我正在使用 Laravel 8.22.0。

完整日志

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"
    }
}
node.js laravel webpack laravel-8 laravel-mix
11个回答
88
投票

我尝试了很多解决方案,但只有这个对我有用:

首先,更新你的 laravel-mix

npm install laravel-mix@latest

然后执行干净的 npm 安装:

npm clean-install

这应该可以修复 laravel 8 mix 错误。


27
投票

如果有人有类似的问题。

NPM 喜怒无常。有时值得尝试删除所有模块并重新安装它们:

在 Linux 上,这是一个简单的命令:

rm -rf node_modules
在项目根文件夹中,

而不是再次运行

npm install


10
投票

您需要将 Laravel Mix、SASS Loader 依赖项升级到最新版本并安装 PostCSS 和 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

您现在应该拥有 Laravel Mix 版本 6,因此剩下的唯一步骤是编译您的资产。然后,使用新的 Mix 可执行文件或使用 npm。

npx mix -p

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"
    }
}

5
投票

修复 mix not find 错误的最佳方法是使用以下命令重新安装 npm:

 npm clean-install 


2
投票

最近 laravel mix 已更新到 laravel mix 6,所以我建议检查您正在使用的 npm/node 的当前版本,并尝试将其升级到最新版本。

npm -v

您可以使用以下方式升级到最新版本的 npm:

npm install -g npm@latest

或升级到最新版本:

npm install -g npm@next

2
投票
npm install laravel-mix@latest

并且您可能需要安装 vue-loader 旧版对等依赖项。通常它会在

npm run dev

期间自动安装或更新

0
投票

我也遇到了同样的问题(Win 10 作为主机,Homestead 在 Vagrant 中)。我尝试了上面的方法,但仍然出现错误。以下最终为我工作:

  1. 以管理员身份打开powershell
  2. 导航到项目根目录
  3. 运行此命令
node c:\<path to node installation>\node_modules\npm\bin\npm-cli.js install --scripts-prepend-node-path=auto

在以前的版本中,将节点包从虚拟机安装到已安装的驱动器中(因为 Windows 没有 bin 链接)是可以的,laravel mix 可以工作。我的猜测是因为 package.json 文件更详细并指定了完整路径 - 此处 package.json 文件的差异

新版本中的语法简洁,需要 bin 链接来跟随引用。在没有管理员权限的情况下运行命令对我来说失败了,因为重命名文件对您来说可能会有所不同。展望未来,这将需要成为安装节点包的新过程(在主机上与在虚拟机上)。


0
投票

我安装后也遇到同样的问题

laravel/ui
:

composer require laravel/ui
php artisan ui vue --auth

在这种情况下,有两种可能的解决方案:

  1. 只需使用
    node_modules
    删除
    RMDIR "FOLDERNAME" /S /Q
    文件夹,然后使用
    npm install
  2. 重新安装即可 仅
  3. 运行
    npm install
    安装
    laravel/ui
    ui vue
    后(我知道,听起来很疯狂, 但这对我来说正是如此)

完成两点之一后,执行

npm run dev


0
投票

我也遇到过同样的情况。几个小时后终于开始工作了。我做了什么:

  1. 更新了 NPM
    npm install -g npm@latest
  2. 更新了 laravel-mix(撰写本文时为 6.0.31)
  3. 更新了 Vagrantfile https://laravel.com/docs/8.x/homestead#symbolic-links-on-windows
  4. 重新加载电脑(
    vagrant reload --provision
    可能就足够了)
  5. 以管理员身份运行终端/phpstorm
  6. 删除旧的node_modules,yarn.lock,package.lock,清除NPM缓存
  7. 重要使用纱线!
    sudo yarn install
    然后
    sudo yarn run dev

0
投票

请运行此命令。它对我有用。

yarn install --ignore-engines

0
投票

升级 Node 解决了我的问题,从 12 到 18。可以解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.