打字稿注入`require(...)`而不是导入文件

时间:2018-11-02 14:26:47

标签: typescript

我正在尝试编译第三方模块pdfassembler,以在编译结果中包括import语句当前引用的require的来源。

src/pdfassember.ts文件具有例如

import { PDFDocument } from 'pdfjs-dist/lib/core/document';

将其导入而不是导入

require('/Users/.../pdfassembler/node_modules/pdfjs-dist/lib/core/document.js')

...而不是源代码。

运行tsc --traceModules可以得到

  

=========模块名称'pdfjs-dist / lib / core / document'已成功解析为'/ Users / bmh / Repos / pdfassembler / node_modules / pdfjs-dist / lib / core / document。 js”。 ========

目前尚不清楚如何包括进口。 Typescript文档on module resolution没有提供说明为什么可能会发生这种情况的信息。 (在撰写本文时,typescriptlang.org已关闭)

我希望这是"import vs require"问题的一种,但是那里提供的答案并未指出任何明显的解决方案。

导入的PDF.js具有一个@types/pdfjs-dist,在我看来这可能是可用的,但尚不清楚如何使用。

一个理想的答案将表明如何在不使用任何require语句的情况下编译pdfassembler,但通常了解Typescript在做什么/期望以及如何解决此类问题会很有用。

1 个答案:

答案 0 :(得分:2)

如果要将多个模块合并到一个文件中,则需要使用模块打包器,例如Webpack,Rollup或Browserify。模块捆绑不在TypeScript编译器的范围内。 (TypeScript的模块解析功能的唯一目的是支持IDE中的类型检查和代码导航。)