Import 打字脚本可以';无法解析导入中的非相对路径

Import 打字脚本可以';无法解析导入中的非相对路径,import,typescript,webpack,Import,Typescript,Webpack,我有这样的项目结构 |--src |--app.component |--index.ts |--home.component |--index.ts |--tsconfig.json |--webpack.config.js 我试着在app.component-index.ts中做下面的事情 import { HomeComponent } from 'components/home.comp

我有这样的项目结构

|--src
     |--app.component
                    |--index.ts
     |--home.component
                    |--index.ts
|--tsconfig.json
|--webpack.config.js
我试着在app.component-index.ts中做下面的事情

import { HomeComponent } from 'components/home.component'
Typescript找不到此模块并引发

error TS2307: Cannot find module 'home.component'
Typescript文档说下一步:

对moduleB的非相对导入,例如从“moduleB”导入{b}, 在源文件/root/src/folder/a.ts中,将导致尝试 以下位置用于定位“moduleB”:

所以对于我的情况,我想会是这样

/src/components/app.component/components/home.component
/src/components/components/home.component
/src/components/home.component
提前谢谢。 另外,在我的webpack.config中,我已经将root.resolve设置为src,并且一切都是正确的。Typescript loader将错误打印到终端,但所有内容都捆绑在一起并正常工作

,因此我可以猜测其中的“为什么”部分,但我对Typescript比较陌生。不过我已经做到了,所以我会尽我所能尝试根据这个解决方案来解释

如果满足以下条件,则基于TypeScript文档的预期基本正确:

'components/home.component'
被视为“非相对进口”。我相当确定(基于我的解决方案),TypeScript将其视为tsconfig.json中“compilerOptions.baseUrl”字段的绝对路径

对我有效的是这样设置:

{
  "compilerOptions": {
    "baseUrl": ".",

    // Other options
  }
}
这本质上告诉TypeScript尝试找到类似

'components/home.component'
通过在tsconfig.json文件所在的目录中查找名为“components”的目录,然后在其中查找名为“home.component”的文件/目录

因此,如果您的结构看起来像:

|--src
   |--app.component
       |--index.ts
   |--home.component
       |--index.ts
|--tsconfig.json
|--webpack.config.js
然后将baseUrl设置为“.”,您可能需要将导入的格式设置为

import { HomeComponent } from 'src/home.component'

components/home.component
看起来不像非相对导入。您告诉它获取
home.component
,但那是一个目录,不是一个模块。@Ozrix-hmm。。但如果我把它改成简单的“home.component”,它对我就不起作用了。这很奇怪,但是
components/home。几天前当
src
文件夹被命名为
client
时,component
工作正常,您不需要在路径前面加上“/”前缀?例如,从“./components/home.component”导入{HomeComponent}?@mattsarles它不会解决问题。如果我这样做,路径就会变得相对。我可以用亲属路径来做,但我想知道为什么它不起作用
import { HomeComponent } from 'src/home.component'