Reactjs 未找到模块:Can';t解决';物料界面搜索栏';

Reactjs 未找到模块:Can';t解决';物料界面搜索栏';,reactjs,material-ui,Reactjs,Material Ui,我发现了错误 Module not found: Can't resolve 'material-ui-search-bar' in 'C:\Users\James\React\fpl-ui\src' 在Windows上运行npm start时 然而,完全相同的项目在OSX上编译并运行良好,我不确定是否有某种特定于Windows的配置我没有 My package.json具有以下依赖项 "dependencies": { "@material-ui/core": "^3.3.2",

我发现了错误

Module not found: Can't resolve 'material-ui-search-bar' in 'C:\Users\James\React\fpl-ui\src'
在Windows上运行
npm start

然而,完全相同的项目在OSX上编译并运行良好,我不确定是否有某种特定于Windows的配置我没有

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

我已尝试删除一个
材质ui
依赖项,但没有任何区别。

您的package.json缺少
材质ui搜索栏
包。请运行
npm i--save material ui搜索栏
在本地项目中安装依赖项,然后再次运行
npm start


如果不起作用,请再次检查package.json文件,并确保将
材质ui搜索栏
添加为依赖项。如果不是,您可以尝试手动添加它,然后再次运行
npm install
npm start

物料界面搜索栏
不是
@material ui
软件包的一部分。您需要单独安装此软件包:

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

编辑:我现在明白您为什么同时使用这两个版本了。当前稳定发布的
物料界面搜索栏
使用的是旧物料界面版本。幸运的是,beta发布渠道确实支持新版本

我建议您采取以下措施:

  • 删除旧的
    物料界面
    版本,仅保留新的
    @material ui/core

    npm uninstall --save material-ui
    
  • 删除旧的
    物料界面搜索栏

    npm uninstall --save material-ui-search-bar
    
  • 安装
    材质ui搜索栏的测试版

    npm install --save material-ui-search-bar@1.0.0-beta.13
    
现在它应该可以工作了,但是我最好看看
材质ui搜索栏
包的文档,看看新版本是否引入了一些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"
}

我的建议是在app root文件夹中使用命令
npm install
。这将添加丢失的所有必需依赖项。

在运行npm安装时,您是本地安装还是全局安装?这很可能是npm如何解析可能包含有效模块的文件夹的问题!现在我得到了关于@material ui/core/Paper module找不到的相同错误,但这一个看起来像是@material ui/core的一部分,我已经将其作为依赖项,所以对于如何安装它有点困惑。正如我所说的,双材质ui有点混乱,尝试删除
物料界面
,只保留
@物料界面/核心
。如果不起作用,您是手动添加依赖项还是由
npm install
自动添加依赖项?这种方法有效,现在我得到了错误
/node\u modules/material ui search bar/lib/components/SearchBar/SearchBar.js Module not found:无法解析'C:\Users\James\React\fpl ui\node\u modules\material ui search bar\lib\components\SearchBar'中的'material ui/AutoComplete'。
我对此有点困惑。@JaAnTr my bad,我忘了将
--save
添加到卸载命令中,现在包应该已经卸载了,但我相信
package.json
仍然包含它。从package.json中删除
material ui
(不要删除@material ui/core或material ui搜索栏),同时手动添加我应该选择的版本。