升级到 Angular 9 期间,Typescript 编译中缺少 main.ts 和 polyfills.ts

Mic*_*ick 4 webpack asp.net-core angular

我正在尝试将 Angular 8 项目升级到 Angular 9,但出现以下错误:

fail: Microsoft.AspNetCore.SpaServices[0]
  ERROR in ./src/main.ts Module build failed (from ./node_modules/@ngtools/webpack/src/index.js): Error:
Run Code Online (Sandbox Code Playgroud)

TypeScript 编译中缺少 C:\redacted\redacted\redacted\src\main.ts。请通过“files”或“include”属性确保它位于您的 tsconfig 中。在 AngularCompilerPlugin.getCompiledFile (C:\redacted\redacted\redacted\node_modules@ngtools\webpack\src\angular_compiler_plugin.js:933:23) 位于 C:\redacted\redacted\redacted\node_modules@ngtools\webpack\src\loader。 processTicksAndRejections 处的 js:41:31 (internal/process/task_queues.js:89:5) ./src/polyfills.ts 中的错误模块构建失败(来自 ./node_modules/@ngtools/webpack/src/index.js):错误:TypeScript 编译中缺少 C:\redacted\redacted\redacted\src\polyfills.ts。请通过“files”或“include”属性确保它位于您的 tsconfig 中。在 AngularCompilerPlugin.getCompiledFile (C:\redacted\redacted\redacted\node_modules@ngtools\webpack\src\angular_compiler_plugin.js:933:23) 位于 C:\redacted\redacted\redacted\node_modules@ngtools\webpack\src\loader。 js:41:31 在 processTicksAndRejections (内部/process/task_queues.js:89:5)

我知道 Stackoverflow 上有一些类似的帖子,但似乎没有一个答案适合我的情况。我已将 ""preserveSymlinks": true" 插入 angular.json 中,并尝试将整个项目移动到 c: 。main.ts 和 polyfills.ts 位于何处,但它说它们不在,因此相当混乱。

角度.json

{
    "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
    "version": 1,
    "newProjectRoot": "projects",
    "projects": {
        "our-project": {
            "root": "",
            "sourceRoot": "src",
            "projectType": "application",
            "architect": {
                "build": {
                    "builder": "@angular-devkit/build-angular:browser",
                    "options": {
                        "preserveSymlinks": true,
                        "aot": true,
                        "outputPath": "dist/browser",
                        "index": "src/index.html",
                        "main": "src/main.ts",
                        "tsConfig": "src/tsconfig.app.json",
                        "polyfills": "src/polyfills.ts",
                        "assets": ["src/assets"],
                        "styles": [
                            "src/assets/styles/app/icons.css",
                            "src/assets/styles/app/icons.alias.css",
                            "src/assets/styles/lib/animate.css",
                            "src/assets/styles/app/site.less",
                            "src/assets/styles/app/start.less",
                            "src/assets/styles/app/animations.less",
                            "src/assets/styles/app/topimages.less",
                            "src/assets/styles/app/style-apploading.less",
                            "src/assets/styles/app/style.scss",
                            "src/assets/styles/app/menu.less"
                        ],
                        "scripts": []
                    },
                    "configurations": {
                        "production": {
                            "budgets": [
                                {
                                    "type": "anyComponentStyle",
                                    "maximumWarning": "30kb"
                                }
                            ],
                            "optimization": true,
                            "outputHashing": "all",
                            "sourceMap": true,
                            "extractCss": true,
                            "namedChunks": false,
                            "aot": true,
                            "extractLicenses": true,
                            "vendorChunk": false,
                            "buildOptimizer": true,
                            "fileReplacements": [
                                {
                                    "replace": "src/environments/environment.ts",
                                    "with": "src/environments/environment.prod.ts"
                                }
                            ]
                        },
                        "es5": {
                            "budgets": [
                                {
                                    "type": "anyComponentStyle",
                                    "maximumWarning": "30kb"
                                }
                            ],
                            "tsConfig": "./tsconfig.es5.json"
                        }
                    }
                },
...
Run Code Online (Sandbox Code Playgroud)

tsconfig.app.json

{
    "extends": "../tsconfig.json",
    "compilerOptions": {
        "outDir": "../out-tsc/app",
        "baseUrl": "",
        "types": ["node"]
    },
    "files": ["main.ts", "polyfills.ts"],
    "include": ["**/*.d.ts"],
    "includes": ["../node_modules/our-typescript-api/AngularApi.js"]
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*ick 6

花了半天时间试图解决这个问题,我在发布问题后5分钟就发现了问题所在!

因此,不应在 tsconfig.app.json 中包含: ""files": ["main.ts", "polyfills.ts"]" ,而应在 tsconfig.json 中(但以 src/ 开头)