使用require('./ lib')。default键入第三方库

时间:2018-08-11 10:22:31

标签: typescript

我正在尝试输入dynamic-cdn-webpack-plugin,但是有点卡住了。在库中,模块导出为module.exports = require('./lib').default; 通过输入,我得到:

  

错误TS2351:无法对类型缺少调用或构造签名的表达式使用'new'。

declare module "dynamic-cdn-webpack-plugin" {
  import * as webpack from "webpack";
  interface Options {
    disable?: boolean;
    env?: string;
    exclude?: string[];
    only?: string[];
    verbose?: boolean;
    resolver?: () => {
      name: string;
      var: string;
      url: string;
      version: string;
    };
  }
  export class DynamicCdnWebpackPlugin extends webpack.Plugin {
    constructor(options?: Options);
  }
}

如果我将其更改为export default class,则得到

  

跳过发射

我的猜测是,我必须以某种方式指出DynamicCdnWebpackPlugin是该库的默认导出,但是我找不到解决方法

1 个答案:

答案 0 :(得分:0)

毕竟这是一个webpack问题。我查看了webpack文档,发现您必须对ts-node使用commonjs模块系统,否则它将失败。对我来说,解决方案是使用tsconfig-paths,在这里我可以指定对除webpack.config文件之外的所有内容使用es模块。