如何使用无类型的npm模块与webpack

时间:2018-02-23 21:58:00

标签: typescript webpack leaflet commonjs ts-loader

我收到来自webpack的Invalid module name in augmentation错误,其中包含我在项目中包含的几个库*.d.ts文件。

一个例子来自leaflet-draw,其顶部有以下模块声明的d.ts文件:

import * as L from 'leaflet';

declare module 'leaflet' {
    interface MapOptions {
        drawControl?: boolean;
    }

完整错误是:

  

扩充中的模块名称无效。模块'传单'解决了   无类型模块   ' C:\用户*** \文件\ GitHub的*** \ node_modules \小叶\ DIST \小叶-src.js&#39 ;,   这是无法增加的。

我不完全确定如何处理这个问题,我不想自己修改d.ts文件,因为这些是外部维护的。

我使用的是最新版本的webpack(3.11.0)和ts-loader(3.5.0)。

我的tsconfig编译器选项如下:

"compilerOptions": {
        "target": "es5",
        "sourceMap": true,
        "outDir": "./dist",
        "rootDir": "../",
        "noImplicitAny": false,
        "noImplicitThis": false,
        "noUnusedLocals": false,
        "noUnusedParameters": false,
        "pretty": true,
        "removeComments": false,
        "allowUnreachableCode": false,
        "declaration": false,
        "allowJs": true,
        "module": "commonJs",
        "typeRoots" : ["./typings/index.d.ts", "../../node_modules/@types"]
    }

我感谢任何人提供的任何帮助,以帮助我进一步了解错误以及如何解决它。

由于

1 个答案:

答案 0 :(得分:0)

您需要将import语句放入声明模块中。

-loop

当import语句位于文件的第一行时,尝试在上面添加声明文件(由@ m0a编写,其PR未得到接受)时,我遇到了相同的错误-感觉很自然。 >