【问题标题】:Module not found: Can't resolve 'material-ui-search-bar'找不到模块:无法解析“material-ui-search-bar”
【发布时间】:2023-03-04 13:41:02
【问题描述】:

我收到了错误

Module not found: Can't resolve 'material-ui-search-bar' in 'C:\Users\James\React\fpl-ui\src'

在 Windows 上运行 npm start 时。

但是,完全相同的项目在 OSX 上编译和运行良好,我不确定是否缺少某种特定于 Windows 的配置。

我的 package.json 有以下依赖

  "dependencies": {
    "@material-ui/core": "^3.3.2",
    "material-ui": "^0.20.2",
    "react": "^16.4.2",
    "react-dom": "^16.4.2",
    "react-script": "^2.0.5",
    "react-scripts": "1.1.5"
  }

我已尝试删除 material-ui 依赖项之一,但这没有任何区别。

【问题讨论】:

  • 你运行 npm install 时是本地安装还是全局安装?这可能是 npm 如何解析可能包含模块的文件夹的问题

标签: reactjs material-ui


【解决方案1】:

material-ui-search-bar 不是@material-ui 包的一部分,您需要单独安装此包:

npm install --save material-ui-search-bar

除此之外,您同时安装了@material-ui/corematerial-ui 很奇怪。它们都是相同的包,但来自不同的主要版本。

编辑:我现在明白你为什么同时使用这两个版本了。 material-ui-search-bar 当前的稳定版本使用的是旧的 material-ui 版本。幸运的是,测试版发布通道确实支持新版本。

我建议您执行以下操作:

  • 删除旧版material-ui,只保留新版@material-ui/core

    npm uninstall --save material-ui
    
  • 删除旧的material-ui-search-bar

    npm uninstall --save material-ui-search-bar
    
  • 安装material-ui-search-bar 的测试版

    npm install --save material-ui-search-bar@1.0.0-beta.13
    

现在它应该可以工作了,但我最好看看 material-ui-search-bar 包的文档,看看新版本是否引入了一些 API 更改。

通常不建议使用最新的 beta 版本,因为它容易出现错误,但在这种情况下,查看更新日志似乎更安全。另请查看此软件包的新版本以不时对其进行更新。

在该过程结束时,您的 package.json 应该如下所示。

"dependencies": {
    "@material-ui/core": "^3.3.2",
    "material-ui-search-bar": "1.0.0-beta.13"
    "react": "^16.4.2",
    "react-dom": "^16.4.2",
    "react-script": "^2.0.5",
    "react-scripts": "1.1.5"
}

【讨论】:

  • 成功了!现在我收到关于找不到 @material-ui/core/Paper 模块的相同错误,但它看起来像是我已经作为依赖项拥有的 @material-ui/core 的一部分,所以有点困惑如何安装那个。
  • 正如我所说,双重材质-ui 有点令人困惑,尝试删除material-ui,只保留@material-ui/core。如果这不起作用,您是手动添加依赖项还是由npm install 自动添加的?
  • 那种工作,现在我收到错误./node_modules/material-ui-search-bar/lib/components/SearchBar/SearchBar.js Module not found: Can't resolve 'material-ui/AutoComplete' in 'C:\Users\James\React\fpl-ui\node_modules\material-ui-search-bar\lib\components\SearchBar'我对此有点困惑。
  • @JaAnTr 我的错,我忘了将--save 添加到卸载命令中,现在该包应该已卸载,但我相信package.json 仍然包含它。从 package.json 中删除 material-ui(不要删除 @material-ui/core 或 material-ui-search-bar)
【解决方案2】:

您的 package.json 缺少 material-ui-search-bar 包。请运行npm i --save material-ui-search-bar在你的项目本地安装依赖,然后再次运行npm start

如果它不起作用,请再次检查您的 package.json 文件并确保将 material-ui-search-bar 添加为依赖项。如果没有,您可以尝试手动添加,然后再次运行npm installnpm start

【讨论】:

  • 同时手动添加我应该选择什么版本。
【解决方案3】:

我的建议是在应用根文件夹中使用命令npm install。这将添加所有缺少的必需依赖项。

【讨论】:

    猜你喜欢
    • 2020-09-09
    • 2020-10-30
    • 1970-01-01
    • 2020-09-07
    • 2018-02-16
    • 2018-03-30
    • 2020-02-04
    • 2019-02-02
    • 2020-03-18
    相关资源
    最近更新 更多