Angular 9 ngcc 尝试扫描整个磁盘

Angular 9 ngcc try to scan entire disk

我按照 angular.io 指南将我的 Angular 8 迁移到了 Angular 9,但是我在生成 ivy 入口点时遇到了问题。

当我执行 npm install 时,我在 ngcc 命令执行期间看到以下错误。

ngcc

Error: EPERM: operation not permitted, lstat 'E:/System Volume Information'
    at Object.lstatSync (fs.js:917:3)

我正在使用 Windows 10 和 Node 12,但我在 macOS 上试过,我得到了相同的结果(当然是在另一个系统保护路径上)。

按照我的安装后脚本

"postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points"

我搜索了这个问题并提出了更改文件夹权限的解决方案,但我不想破坏我的 OS。

此外,如果没有 ngcc 工作,我无法执行 ng serve。

如何防止ngcc扫描整个磁盘只做它应该做的事?有关于此的已知错误吗?

编辑:

tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "esnext",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es2015",
    "typeRoots": ["node_modules/@types"],
    "lib": ["es2018", "dom"],
    "paths": {
      "@app/*": ["src/app/*"],
      "@src/*": ["src/*"],
      "@root/*": ["/*"]
    }
  }
}

问题在 tsconfig.js

{
    ...
    "paths": {
      "@app/*": ["src/app/*"],
      "@src/*": ["src/*"],
      "@root/*": ["/*"]
    }
    ...
}

我原以为@root 路径只针对项目的根目录,但我忘记了使它成为相对路径的点

"@root/*": ["./*"]