有谁知道为什么会抛出以下错误以及如何修复它?我还多次尝试使用
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"
}
}
我尝试了很多解决方案,但只有这个对我有用:
首先,更新你的 laravel-mix
npm install laravel-mix@latest
然后执行干净的 npm 安装:
npm clean-install
这应该可以修复 laravel 8 mix 错误。
如果有人有类似的问题。
NPM 喜怒无常。有时值得尝试删除所有模块并重新安装它们:
在 Linux 上,这是一个简单的命令:
rm -rf node_modules
在项目根文件夹中,
而不是再次运行
npm install
。
您需要将 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"
}
}
修复 mix not find 错误的最佳方法是使用以下命令重新安装 npm:
npm clean-install
最近 laravel mix 已更新到 laravel mix 6,所以我建议检查您正在使用的 npm/node 的当前版本,并尝试将其升级到最新版本。
npm -v
您可以使用以下方式升级到最新版本的 npm:
npm install -g npm@latest
或升级到最新版本:
npm install -g npm@next
npm install laravel-mix@latest
并且您可能需要安装 vue-loader 旧版对等依赖项。通常它会在
npm run dev
期间自动安装或更新
我也遇到了同样的问题(Win 10 作为主机,Homestead 在 Vagrant 中)。我尝试了上面的方法,但仍然出现错误。以下最终为我工作:
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 链接来跟随引用。在没有管理员权限的情况下运行命令对我来说失败了,因为重命名文件对您来说可能会有所不同。展望未来,这将需要成为安装节点包的新过程(在主机上与在虚拟机上)。
我安装后也遇到同样的问题
laravel/ui
:
composer require laravel/ui
php artisan ui vue --auth
在这种情况下,有两种可能的解决方案:
node_modules
删除 RMDIR "FOLDERNAME" /S /Q
文件夹,然后使用 npm install
npm install
安装 laravel/ui
和 ui vue
后(我知道,听起来很疯狂,
但这对我来说正是如此)完成两点之一后,执行
npm run dev
。
我也遇到过同样的情况。几个小时后终于开始工作了。我做了什么:
npm install -g npm@latest
vagrant reload --provision
可能就足够了)sudo yarn install
然后sudo yarn run dev
请运行此命令。它对我有用。
yarn install --ignore-engines
升级 Node 解决了我的问题,从 12 到 18。可以解决这个问题。