簡體   English   中英

使用本地聲明文件在TypeScript中導入webpack外部包

[英]Import webpack externals package in TypeScript with local declaration file

我正在嘗試在我的打字稿模塊中導入一個外部模塊。 在Web應用程序的環境中,已經存在一個模塊加載器,並且存在模塊“ my-lib”,該模塊使用JavaScript編寫,並且不附帶聲明文件。

因此,我想要這個lib,但是要在本地進行模塊聲明(因為我是當前在此上下文中使用TypeScript的唯一人)。

我試圖使用typeRoots中的tsconfig.json設置聲明文件的搜索路徑。 這適用於/// <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"
},
...

我使用以下tsconfig.json (我想到):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM