'NodeRequire'types的'确保'属性不存在

我正在尝试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'. 

任何想法如何解决它? 谢谢

我解决这个问题的方法是创build我自己的接口WebpackRequire ,它扩展了NodeRequireensure 1

 interface WebpackRequire extends NodeRequire { ensure( dependencies: string[], callback: (require: WebpackRequire) => void, errorCallback?: (error: Error) => void, chunkName?: string ): void; }; 

如果你只有一个require.ensure实例, require.ensure你可以使用(require as WebpackRequire).ensuretypes将它转换为一个(require as WebpackRequire).ensure ,但是由于我在一个模块中多次使用它,所以我在顶部创build了本地require模块的范围,types转换为WebpackRequire ,如下所示:

 const require: WebpackRequire = (window as any).require; 

1我从Webpack文档中获得了ensure的types

我需要一个JavaScript文件,然后做了要求。 不完全是最好的解决scheme,但它确实工作