将 webpack 的 `require.context` 与 angular cli 和 ivy 结合使用
Using webpack's `require.context` with angular cli and ivy
我们正在尝试将未使用 angular cli(直接使用 webpack 和自定义服务器)构建的 angular 应用程序移植到带有 cli 的 angular 9。升级到 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": []
哪个禁用了此处所述的自动包含:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types
删除整个 types
部分(或添加 "types": ["node", "webpack-env"]
)解决了问题。
我们正在尝试将未使用 angular cli(直接使用 webpack 和自定义服务器)构建的 angular 应用程序移植到带有 cli 的 angular 9。升级到 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": []
哪个禁用了此处所述的自动包含:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types
删除整个 types
部分(或添加 "types": ["node", "webpack-env"]
)解决了问题。