我正在尝试使用webpack 2进行代码拆分。
根据此文档:https://webpack.js.org/guides/code-splitting-require/
以下代码应将some.css包含在名为“something”
的新块中require.ensure([], function(require) {
require('some.css');
}, 'something');
但是当我运行它时,我收到了这个错误:
ERROR in ./src/index.ts
(4,9): error TS2339: Property 'ensure' does not exist on type 'NodeRequire'.
有关如何修复它的任何想法? 感谢
答案 0 :(得分:4)
我解决这个问题的方法是创建我自己的界面 - WebpackRequire
- 使用NodeRequire
1 扩展ensure
。
interface WebpackRequire extends NodeRequire {
ensure(
dependencies: string[],
callback: (require: WebpackRequire) => void,
errorCallback?: (error: Error) => void,
chunkName?: string
): void;
};
如果您只有require.ensure
的单个实例,则可以使用WebpackRequire
将其强制转换为(require as WebpackRequire).ensure
,但由于我多次使用require
模块,我在模块的顶部范围创建了本地WebpackRequire
,输入为const require: WebpackRequire = (window as any).require;
,如下所示:
ensure
1 我从Webpack docs 获得了FormBorderStyle
的类型
答案 1 :(得分:0)
我需要一个javascript文档然后执行了require。不完全是最好的解决方案,但确实有效