使用网页包';s`require.context`与angular cli和ivy

使用网页包';s`require.context`与angular cli和ivy,angular,webpack,angular-ivy,Angular,Webpack,Angular Ivy,我们正在尝试将一个angular应用程序移植到angular 9,该应用程序是在没有angular cli的情况下构建的(直接使用Web包和自定义服务器)。升级到angular 9本身运行良好。在开始使用angular cli之后,我们遇到了几个问题 目前仅存的一个问题是,构建似乎根本没有接收webpack的require.context调用。我们在任何地方都使用它来动态查找和注册我们的组件,而且它以前工作得很好,只使用@types/webpack env包。但是现在,在vscode中没有语法错

我们正在尝试将一个angular应用程序移植到angular 9,该应用程序是在没有angular cli的情况下构建的(直接使用Web包和自定义服务器)。升级到angular 9本身运行良好。在开始使用angular cli之后,我们遇到了几个问题

目前仅存的一个问题是,构建似乎根本没有接收webpack的
require.context
调用。我们在任何地方都使用它来动态查找和注册我们的组件,而且它以前工作得很好,只使用
@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
,但没有成功。我不知道为什么会发生这种情况,我想webpack会正常工作,并在ivy开始工作之前接听这些电话。

在tsconfig.app.json中有这样一个:

"types": []
其中禁用了自动包含,如下所述:

删除整个
类型
部分(或添加
类型“:[“节点”,“网页包环境”]
)解决了问题