пути в многопроектном угловом tsconfig

#angular #typescript

#angular #typescript

Вопрос:

У меня есть приложение на angular, которое я хотел бы разделить на 2 проекта и библиотеку.

В моем первоначальном проекте у меня был tsconfig.json файл со следующим

 {
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "es2020",
    "moduleResolution": "node",
    "importHelpers": true,
    "esModuleInterop": true,
    "target": "es2015",
    "lib": ["es2018", "dom", "esnext.asynciterable"],
    "paths": {
      "@app/*": ["src/app/*"],
      "@e2e/*": ["e2e/src/*"],
      "@environments/*": ["src/environments/*"]
    },
    "allowSyntheticDefaultImports": true
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  }
}
 

Теперь, поскольку я создал проект, и эти пути касаются только этого проекта, я переместил эти пути во вновь созданный projects/projectName/tsconfig.app.json

 /* To learn more about this file see: https://angular.io/config/tsconfig. */
{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "baseUrl": "./src",
    "outDir": "../../out-tsc/app",
    "paths": {
      "@app/*": ["src/app/*"],
      "@e2e/*": ["e2e/src/*"],
      "@environments/*": ["src/environments/*"]
    },
    "types": []
  },
  "files": ["src/main.ts", "src/polyfills.ts"],
  "include": ["src/**/*.d.ts"]
}

 

и

но vscode показывает ошибку при всех моих импортах, а также при компиляции. Это сработает, если я добавлю пути к корню tsconfig.json , но поскольку я хочу @app указать на текущий проект (в каждом проекте), это решение приведет к тому, что у меня @app1 @app2 ...

Комментарии:

1. Поскольку вы создаете angular, вы также включили это изменение местоположения в angular.json файл? я также не уверен в относительных путях, они могут относиться к корню проекта, а не к tsconfig.json?

2. это делается автоматически при создании подпроекта, так что да

3. я вижу, что tsconfig.app.json это игнорируется, path поэтому их необходимо добавить в корень… но должен быть другой способ / решение