min*_*rse 5 commonjs leaflet typescript webpack ts-loader
我收到Invalid module name in augmentation来自 webpack 的错误,用于*.d.ts包含在我的项目中的几个库文件。
一个例子来自leaflet-draw,它在d.ts文件的顶部有以下模块声明:
import * as L from 'leaflet';
declare module 'leaflet' {
interface MapOptions {
drawControl?: boolean;
}
Run Code Online (Sandbox Code Playgroud)
完整的错误是:
扩充中的模块名称无效。模块 'leaflet' 解析为位于 'C:\Users***\Documents\GitHub***\node_modules\leaflet\dist\leaflet-src.js' 的无类型模块,无法扩充。
我不完全确定该怎么做,我不想修改 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"]
}
Run Code Online (Sandbox Code Playgroud)
我感谢任何人可以提供的任何帮助,以帮助我进一步了解错误以及如何解决它。
谢谢
您需要将 import 语句放入声明模块内。
declare module '@hyperapp/router' {
import { VNode } from 'hyperapp'
export function Link(props: LinkProps): VNode<LinkProps>
...
}
Run Code Online (Sandbox Code Playgroud)
当导入语句位于文件的第一行时,我尝试添加上面的声明文件(由 @m0a 编写,其 PR 尚未被接受)时遇到了同样的错误 - 这感觉最自然。
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |