'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
,它扩展了NodeRequire
, ensure
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).ensure
types将它转换为一个(require as WebpackRequire).ensure
,但是由于我在一个模块中多次使用它,所以我在顶部创build了本地require
模块的范围,types转换为WebpackRequire
,如下所示:
const require: WebpackRequire = (window as any).require;
1我从Webpack文档中获得了ensure
的types
我需要一个JavaScript文件,然后做了要求。 不完全是最好的解决scheme,但它确实工作