Visual Studio Code не может разрешить угловые пути tsconfig - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь импортировать некоторые службы, используя параметры barrels и tsconfigs paths, но я не могу получить angular и vscode, чтобы справиться.

Если это работает для одного, это не для другого и наоборот ...

Моя ситуация кажется довольно простой:

  • в src/app/services У меня есть служба, которая экспортируется в index.ts
  • мой src/tsconfig.app.json просто так:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "types": [],
    "baseUrl": ".",
    "paths": {
      "services": ["app/services"]
    }
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ],
}

и мое угловое приложение компилируется без проблем , но vscode продолжает выдавать мне ошибки каждый раз, когда я пытаюсь импортировать свой сервис из 'services', давая мне [ts] Cannot find module 'services'.

почему

Я использую машинопись 3.1.6 и в настройках vscode у меня "typescript.tsdk": "C:/Users/myuser/AppData/Roaming/npm/node_modules/typescript/lib" (я также пытался оставить настройку по умолчанию, без изменений)


редактирование:

если я укажу paths в ./tsconfig.json, начиная с src, vscode будет счастлив, а угловой - нет.

если я укажу paths в tsconfig.json и src/tsconfig.app.json, и vscode, и angular будут счастливы, но мне кажется, что это слишком глупый обходной путь ...

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Я столкнулся с похожей ситуацией с Visual Code и Angular 7

ОРИГИНАЛЬНЫЙ КОД (действительный путь из примера книги):

import { Stock } from 'app/model/stock';

ОШИБКА:

Failed to compile.
./src/app/app.component.ts Module not found: Error: Can't resolve 'app/model/stock'...

"ИСПРАВЛЕННЫЙ" КОД:

import { Stock } from './model/stock';
0 голосов
/ 06 ноября 2018

Я понял это, даже если я продолжаю думать, что это все абсурдно ...

VsCode автоматически ищет файл tsconfig.json, и он не заботится о tsconfig.app.json, поэтому paths необходимо указать в tsconfig.json.

В то же время леса angular-cli задают параметр baseUrl в tsconfig.app.json, который переопределяет верхний.

Решением является для удаления параметра baseUrl в tsconfig.app.json или для изменения его значения на "../"

(Как личное замечание, учитывая, что vscode в основном используется для построения угловых решений, я думаю, что есть кое-что, что следует пересмотреть в лесах angular-cli или в том, как vscode ищет файлы tsconfig)

...