Использование веб-пакета `require.context` с angular cli и ivy - PullRequest
0 голосов
/ 25 февраля 2020

Мы пытаемся перенести приложение angular, созданное без angular cli (напрямую использует веб-пакет и пользовательский сервер), на angular 9 с cli. Само обновление до angular 9 работало отлично. После того, как мы начали использовать angular cli, мы столкнулись с несколькими проблемами.

Единственное, что осталось сейчас - это то, что сборка вообще не принимает вызовы require.context webpack. Мы используем это везде для динамического поиска и регистрации наших компонентов, и раньше он работал нормально, используя только пакет @types/webpack-env. Но теперь в vscode нет синтаксических ошибок, но когда мы пытаемся запустить ng serve, он выдает следующую ошибку для каждого файла, который имеет require.context:

ERROR in src/app/shared/shared.module.ts:22:29 - error TS2339: Property 'context' does not exist on type 'NodeRequire'.

const requireFile = require.context(

И вся сборка завершается неудачно , Я предполагаю, что это из-за плюща, но я не знаю, как к этому подойти, я искал везде, но не нашел решения. Я пытался установить @types/webpack-env в зависимостях (вместо dev devdencies), но безуспешно. Я не уверен, почему это происходит, я думал, что веб-пакет будет работать нормально и отвечать на эти вызовы, прежде чем Айви приступит к работе.

1 Ответ

0 голосов
/ 25 февраля 2020

В tsconfig.app. json было следующее:

"types": []

Который отключил автоматическое включение c, как описано здесь: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types -типерусы-и-типы

Удаление всего этого раздела types (или добавление "types": ["node", "webpack-env"]) решило проблему.

...