我有一个简单的TypeScript + Rollup配置,请参见minimal working example here。
文件夹结构如下:
src/mwe.ts
vendor/verovio.js <-- library, that I would like to use
vendor/verovio.d.ts <-- content (for now): declare module 'verovio'
现在我正在尝试在verovio.js
中使用mwe.ts
:
import * as verovio from '../vendor/verovio.js'
export default class DummyClass {
constructor() {
let foo: any = new verovio.toolkit()
}
}
我的目标是在执行js编译器和汇总时,将js库简单地复制到dist
文件夹中,而不是捆绑到我自己的库中。我只是不理解该怎么做。据我所知,这里的问题包括两件事:
error TS2306: File '[...]/mwe/vendor/verovio.d.ts' is not a module.
答案 0 :(得分:1)
您正在尝试将文件作为模块加载。而不是直接指定JS文件,您应该让编译器知道.d.ts文件(例如,通过tsconfig.json或直接通过import),然后再简单地导入模块。
import '../vendor/verovio';
import * as verovio from 'verovio';
export default class DummyClass {
constructor() {
let foo: any = new verovio.toolkit()
}
}
我在https://github.com/sonovice/mwe-ts-verovio-import/pull/1向您发送了一个提取请求,它执行了此操作,并且还根据供应商库的文档更新了类型。我也编辑了汇总配置以复制供应商库,尽管这不是理想的选择,因为您的lib不需要()供应商库。最好将其指定为依赖项,并让模块加载器处理require()。