#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
поэтому их необходимо добавить в корень… но должен быть другой способ / решение