我正在尝试在我的打字稿模块中导入外部模块 . 在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 回答
我用下面的
tsconfig.json
做了(刚想到):