Angular 9 нг cc попытаться просканировать весь диск - PullRequest
1 голос
/ 25 мая 2020

Я перенес свой Angular 8 в Angular 9, следуя руководству angular .io, но у меня возникла проблема при создании точек входа в 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"

Я искал эту проблему, и предлагаемые решения говорят об изменении разрешений папок, но я не хочу снимать защиту с моей ОС .

Также я не могу выполнять ng serve, если ng cc не работает.

Как запретить ng cc сканировать весь диск и делать только то, что он должен делать? Есть ли известная ошибка по этому поводу?

EDIT:

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/*": ["/*"]
    }
  }
}

1 Ответ

1 голос
/ 26 мая 2020

Проблема была в tsconfig. js

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

Я ожидал, что путь @ root нацелен только на root проекта, но я забыл точку, чтобы сделать его относительным

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

...