Laravel 如何解决需要同一依赖项的多个版本的NPM问题?

Laravel 如何解决需要同一依赖项的多个版本的NPM问题?,laravel,npm,dependencies,laravel-nova,Laravel,Npm,Dependencies,Laravel Nova,我正在尝试构建一个Laravel Nova工具,但是当我尝试安装该工具的依赖项时,我得到了一个错误。经过一段时间的尝试解决后,它会导致webpack需要针对不同的依赖项使用多个版本,但我似乎无法让所有这些都一起工作。在我的项目文件夹中,当我运行npm audit fix时,出现以下错误: npm WARN webpack-cli@3.1.2 requires a peer of webpack@^4.x.x but none is installed. You must install peer

我正在尝试构建一个Laravel Nova工具,但是当我尝试安装该工具的依赖项时,我得到了一个错误。经过一段时间的尝试解决后,它会导致webpack需要针对不同的依赖项使用多个版本,但我似乎无法让所有这些都一起工作。在我的项目文件夹中,当我运行
npm audit fix
时,出现以下错误:

npm WARN webpack-cli@3.1.2 requires a peer of webpack@^4.x.x but none is installed. You must install peer dependencies yourself.

up to date in 6.37s
fixed 0 of 1 vulnerability in 15833 scanned packages
1 vulnerability required manual review and could not be updated
我可以通过将webpack版本更改为最新版本来解决这个问题,但是,
npm run watch
不起作用,而且Laravel Nova工具资产仍然无法正确编译

以下是我在尝试创建nova工具时遇到的错误:

npm WARN deprecated browserslist@2.11.3: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN deprecated gulp-util@3.0.8: gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
....
 The `/mnt/c/Users/me/projects/project/nova-components/Anothertool/node_modules/pngquant-bin/vendor/pngquant` binary doesn't seem to work correctly
 ⚠ pngquant pre-build test failed
 ℹ compiling from source
 ✔ pngquant pre-build test passed successfully
 ✖ Error: pngquant failed to build, make sure that libpng-dev is installed
at Promise.all.then.arr (/mnt/c/Users/me/projects/project/nova-components/Anothertool/node_modules/pngquant-bin/node_modules/bin-build/node_modules/execa/index.js:231:11)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! pngquant-bin@4.0.0 postinstall: `node lib/install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the pngquant-bin@4.0.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm警告已弃用browserslist@2.11.3:Browserslist 2在读取其他工具中使用的Browserslist>3.0配置时可能失败。
npm警告已弃用browserslist@1.7.7:Browserslist 2在读取其他工具中使用的Browserslist>3.0配置时可能失败。
npm警告不推荐的吞咽-util@3.0.8:gulp util已弃用-请按照https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
....
“/mnt/c/Users/me/projects/project/nova components/Anothertool/node_modules/pngquant bin/vendor/pngquant”二进制文件似乎无法正常工作
⚠ pngquant预构建测试失败
ℹ 源代码编译
✔ pngquant预构建测试成功通过
✖ 错误:pngquant生成失败,请确保已安装libpng dev
在Promise.all.then.arr(/mnt/c/Users/me/projects/project/nova components/Anothertool/node_modules/pngquant-bin/node_modules/bin build/node_modules/execa/index.js:231:11)
在
在进程中。_tick回调(内部/process/next_tick.js:188:7)
npm警告ajv-keywords@3.2.0需要ajv@^6.0.0的对等机,但未安装任何对等机。您必须自己安装对等依赖项。
npm警告可选跳过可选依赖项:fsevents@1.2.4(节点\单元模块/fsevents):
npm WARN notsup跳过可选依赖项:不支持的平台fsevents@1.2.4:通缉{“os”:“darwin”,“arch”:“any”}(当前:{“os”:“linux”,“arch”:“x64”})
npm错误!代码失效循环
npm错误!错误1
npm错误!pngquant-bin@4.0.0postinstall:`node lib/install.js`
npm错误!退出状态1
npm错误!
npm错误!在pngquant时失败-bin@4.0.0安装后脚本。
npm错误!这可能不是npm的问题。上面可能还有其他日志输出。

这个问题困扰了我好几天了,无论我做什么或做什么改变,我都无法解决这个问题。在安装不同版本的软件包时,我不断遇到不同的错误。我能做些什么来修复此问题?

您是否尝试过像这样重新运行它:

// within your project root directory
rm -rf node_modules package-lock.json yarn.lock
npm cache clear --force
npm install

分别运行每一行。

是的,我在我的
package.json
文件中用不同的网页版本尝试了多次,运气不好。这是我在运行
npm install
时出错的一部分,
/node\u modules/pngquant/node\u modules/pngquant bin/vendor/pngquant
二进制文件似乎无法正常工作⚠ pngquant预构建测试失败了`@hoolakoola您是否尝试过在这里寻找一些答案?啊,终于!谢谢你们——我不得不拼凑出几个解决方案,但都成功了。@hoolakoola太棒了!很乐意帮忙。请接受答案。