【问题标题】:Import local file not resolved导入本地文件未解决
【发布时间】:2021-04-11 03:45:28
【问题描述】:

(短篇小说)

我有两个打字稿文件:renderer.tsxapp.tsx

我想将后者导入前者,所以我使用:

import './app'

然而,VS Code 是在抱怨(其实我猜是 ESlint 在抱怨):

消除此错误的先决条件是什么?

我见过其他项目语法完全相同,没有任何问题。

(长篇大论)

我想学习如何使用 typescript 和 react 构建电子应用程序。我在电子锻造文档中找到了this guide

按照指南在运行时工作,但 VS Code 显示错误错误。

我做了什么:

yarn create electron-app my-app --template=typescript-webpack
cd my-app
yarn add react react-dom
yarn add --dev @types/react @types/react-dom

已创建src/app.tsx 文件(与其他文件在同一目录中):

import * as React from 'react';
import * as ReactDOM from 'react-dom';

function render() {
  ReactDOM.render(<h2>Hello from React!</h2>, document.body);
}

render();

并在renderer.tsx 文件的最后添加:

import './app'

最后在tsconfig.json中添加"jsx": "react"

运行yarn start 有效,应用按预期启动

这很好,应用程序打开了。

但是 VS Code 显示了我上面提到的错误 :( (Unable to resolve path to module './app' .eslintimport/no-unresolved)

如何解决?

完整复制:https://github.com/stevebeauge/sosp-sp-tools

【问题讨论】:

  • 看起来您正在导入一个 CSS 文件,但该文件 (app.css) 不存在。如果您打算使用 App.tsx 文件,则需要将其导出到 App.tsx 文件中并作为组件导入。
  • 如果我参考上一行(模板的一部分),CSS 文件是使用显式扩展名导入的。为什么你认为 import 会尝试导入 CSS 文件?

标签: typescript electron eslint electron-forge


【解决方案1】:

我不知道这是否是解决我的问题的正确方法,但在 .eslintrc.json 文件中添加这些行可以解决问题:

"settings": {
  "import/resolver": {
    "node": {
      "extensions": [
        ".js",
        ".json",
        ".ts",
        ".tsx"
      ]
    }
  }
}

(特别是在扩展中包含.tsx)。

我猜它让 eslint 尝试将这些扩展作为模块文件处理。

【讨论】:

  • 想知道为什么css不需要在这里指定,因为它有扩展名?那么 import './app.tsx' 可以工作吗?
  • 使用imports './app.tsx' 导入有效。我想我可以在这里添加css,但我觉得这应该保留给代码文件(我是初学者,我可能会磨损)
  • 在 TypeScript 中,在 import 语句中显式指定 .ts.tsx 扩展名是无效的。
  • @AluanHaddad:有 webpack 在幕后工作。也许这有一些影响?
猜你喜欢
  • 2021-05-17
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 2015-01-18
  • 2017-02-01
  • 2015-03-02
  • 1970-01-01
相关资源
最近更新 更多