首页 文章

使用本地声明文件在TypeScript中导入webpack externals包

提问于
浏览
0

我正在尝试在我的打字稿模块中导入外部模块 . 在Web应用程序的环境中,已经存在模块加载器并且存在模块“my-lib”,该模块是用JavaScript编写的,并且不附带声明文件 .

所以,我想要这个lib,但是在本地有模块声明(因为我是目前在这个上下文中唯一使用TypeScript的人) .

我尝试在 tsconfig.json 中使用 typeRoots 设置声明文件的搜索路径 . 这适用于 /// <reference types="my-lib" /> ,但不适用于 import "my-lib"; . 只有当我将 @types 文件夹放在 node_modules 文件夹中时,模块解析才能找到并导入它 .

有没有办法设置它,这样我就不需要将 @types 放在 node_modules 文件夹中?

tsconfig.json:

{
    "compilerOptions": {
        "esModuleInterop": true,
        "typeRoots": [
            "./@types"
        ]
    },
    "include": [
        "src/**/*"
    ]
}

@类型/我-LIB / index.d.ts:

interface MyLib {
    ...
}

declare const myLib: MyLib;
export = myLib;

SRC / entry.ts:

import myLib from "my-lib";
...

webpack.config.js:

...
externals: {
    "my-lib": "my-lib"
},
...

1 回答

  • 1

    我用下面的 tsconfig.json 做了(刚想到):

    {
        "compilerOptions": {
            "esModuleInterop": true,
            "typeRoots": [
                "./@types"
            ],
            "baseUrl": ".",
            "paths": {
                "*": [
                    "*",
                    "@types/*"
                ]
            }
        },
        "include": [
            "src/**/*",
            "@types/**/*"
        ]
    }
    

相关问题