无法编译反应应用程序,因为它说“找不到模块”
Posted
技术标签:
【中文标题】无法编译反应应用程序,因为它说“找不到模块”【英文标题】:Unable to compile react application as it says "Module not found" 【发布时间】:2018-06-04 15:52:38 【问题描述】:我一直在尝试执行一个非常简单的反应应用程序,但由于某种原因我无法编译它。当我尝试使用“npm start”在 bash 中编译它时,我收到错误消息“编译失败:./src/index.js 未找到模块:无法解析 '/Users/Pruthvi/Desktop/ReactApplication/my-app/src' 中的 './registerServiceWorker'"
任何人都可以帮助我,因为我是反应应用程序的新蜜蜂!
【问题讨论】:
您使用的是create-react-app
,对吗?您是否删除或修改了您在创建项目时自动创建的任何文件create-react-app
?
是的,我删除了一些我不需要使用的文件。我指的是一个教程,我已经完全实现了所显示的内容。但由于某种原因,我无法继续学习本教程。
【参考方案1】:
默认情况下,create-react-app
将创建一个渐进式 Web 应用程序,如 here 所述。渐进式 Web 应用程序依赖于 registerServiceWorker.js
文件中的 registerServiceWorker()
。您显然已删除此文件,因此您的项目不再构建。
你有两个选择:
-
将您的项目保留为渐进式 Web 应用,在这种情况下,您只需恢复首次创建后的原始状态即可。
退出渐进式网络应用功能。
要退出渐进式网络应用功能,您需要修改您的src/index.js
文件,如下所示:
-
删除
registerServiceWorker
的import
。
删除registerServiceWorker()
调用。
您的src/index.js
将如下所示:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
// Deleted -- import registerServiceWorker from './registerServiceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
// Deleted -- registerServiceWorker();
对index.js
进行这些修改后,您可以安全地删除registerServiceWorker.js
文件(根据您发布的错误消息,您似乎已经这样做了)。
文档对how to opt out 和部分the consequences of having a progressive web app 进行了更完整的描述。
【讨论】:
非常感谢!这对我有用!我删除了顶部的 import registerServiceWorker,并在代码末尾调用它。忘记删除或评论该行。非常感谢!【参考方案2】:如果您不熟悉响应并需要快速构建应用程序,您可以尝试 create-react-app by facebook
它是一个命令行工具,可以帮助您以零配置快速构建更好的响应应用程序,您可以从上面的链接中了解更多信息,并且易于使用
还要确保您使用可以帮助您捕获错误的优质编辑器 为了帮助您并第二次给您很好的答案,请提供您的代码以很好地理解问题。
【讨论】:
感谢您的回复!我只是想找出继续进行的答案!以上是关于无法编译反应应用程序,因为它说“找不到模块”的主要内容,如果未能解决你的问题,请参考以下文章
找不到模块:无法解析'autosuggest-highlight / match'