ReactJS:正在将index.js转换为index.tsx -未找到模块:错误:无法解析“./App”

mwg9r5ms  于 2022-12-26  发布在  React
关注(0)|答案(4)|浏览(479)

我尝试在typescript中添加一些页面,由于我只能在.ts或.tsx文件中导入.ts文件,所以我将“Index.js”重命名为“Index.tsx”,将“App.js”重命名为“App.tsx”。
现在我得到了以下错误:

ERROR in ./src/index.tsx 7:0-24
Module not found: Error: Can't resolve './App'

Index.tsx

ReactDOM.render(
  <React.StrictMode>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </React.StrictMode>,
  document.getElementById("root")
);

App.tsx

function App() {
  return (
    <Provider store={store}>
      <div>hi</div>
    </Provider>
  );
}

export default App;

为什么Index.tsx无法解析App.tsx?我使用create-react-app创建了这个项目,并且我使用的是React17.0.2。

klh5stk1

klh5stk11#

这是因为CRA中的webpack配置没有为typeScript设置。
如果你想在你的React项目中使用typeScript,你应该从“CRA typescript 模板”开始!
安装CRA typeScript模板,然后在其中编写代码。
模板NPM站点在这里是https://www.npmjs.com/package/cra-template-typescript
我希望你能找到答案:D

ssm49v7z

ssm49v7z2#

1:在src目录中创建文件tsconfig.json。
粘贴此代码。
{"编译器选项":{

"target": "ES6",

"lib": [
  "dom",
  "dom.iterable",
  "esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"

},"包括":[源代码]
2:安装npm I cra模板 typescript
3:从. "/App.tsx "导入应用程序;而不是从. "/App "导入应用程序;****

gcmastyq

gcmastyq3#

如果要在typescript项目和此代码中使用js文件

"compilerOptions": {
   
    "allowJs": true,
    
  },

到你的tsconfig.json配置文件。如果你没有这个文件,运行$ tsc --init来生成它。

brjng4g3

brjng4g34#

这似乎是一个简单的错误。请检查您是否已在index.tsx中正确导入App.tsx
并且您已经从以下内容更新了导入
import App from 'App.js'import App from 'App.tsx'
如果它没有得到解决,然后与我分享一些更多的信息。

相关问题