【问题标题】:paths is not working in tsconfig.json as expected路径未按预期在 tsconfig.json 中工作
【发布时间】:2019-07-23 22:21:37
【问题描述】:

我正在尝试使用jasmine-ts,但总是出现找不到模块的错误,所以我决定使用tsc检查一下,找出问题所在,我的文件夹结构如下:

\src\app\...
\src\tests\...

所以我在“tests”文件夹级别创建了tsconfig.json,如下所示

{
    "compileOnSave": false,
    "compilerOptions": {
        "baseUrl": "../", 
        "paths": {
            "@app/*": [
                "app/*"
            ] 
        }
    }
}

在我的*.test.ts 文件中,我在应用程序目录中导入了一个模块,但仍然收到模块未找到错误。

找不到模块'@app/core/data/my-module

我尝试了以下命令

tsc --traceResolution test1.test.ts

它给了我

test1.test.ts:2:23 - error TS2307: Cannot find module '@app/core/data/my-module'. 

2 import { Field } from '@app/core/data/my-module'
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~

【问题讨论】:

  • 当您运行tsc --traceResolution test1.test.ts 时,您并未使用tsconfig.json 文件。而是运行tsc --traceResolution -p . 或只运行tsc --traceResolution,如果需要,使用tsconfig.json 中的filesincludeexclude 选项来限制处理的文件。如果这不能让你到达你想去的地方,请更新问题。

标签: angular typescript jasmine


【解决方案1】:

你试过这样吗?:

在 tsconfig.json 中:

{
  "compilerOptions": {
    "baseUrl": "src",
    "paths": {
      "@pages/*": ["app/pages/*"],
      "@environment": ["environments/environment"]
    }
  },
}

导入时:

import { LoginComponent } from '@pages/login/login.component';

import { environment } from '@environment';

它对我有用..

【讨论】:

    【解决方案2】:

    试试

    "baseUrl": "src"
    

    而不是

    "baseUrl": "../",  
    

    在您的 tsconfig.json 中

    【讨论】:

    • 不工作...怎么可能呢?因为 src 是测试的父文件夹,而 tsfoncfig 在测试文件夹中
    • 您的核心文件夹在哪里。如果它在 src/app/ 里面,那么我在回答中所说的是正确的。
    • 是的,“核心”在“src/app”内。我试过了,但没有出现同样的错误。
    • 你又建了没有。请重启 npm。
    • 不工作,请提供 plunker 样品或自己尝试。它对我不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    • 2021-05-06
    • 2019-08-08
    • 2014-05-02
    相关资源
    最近更新 更多