typescript - 打字稿注入`require(...)`而不是导入文件
问题描述
我正在尝试编译第三方模块pdfassembler
以包含编译结果中的语句import
当前引用的 s的源。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 文档没有说明为什么会发生这种情况。(在撰写本文时 typescriptlang.org 已关闭)
我希望这是“import vs require”问题的一种,但那里提供的答案并没有指向任何明显的解决方案。
导入 PDF.js 有一个@types/pdfjs-dist
,我想到这可能是可用的,但不清楚如何使用。
一个理想的答案将表明如何在没有任何require
语句的情况下编译 pdfassembler,但一般了解 Typescript 正在做什么/期望什么以及如何解决这类问题会很有用。
解决方案
如果要将多个模块组合到一个文件中,则需要使用模块捆绑器,例如 Webpack、Rollup 或 Browserify。模块捆绑超出了 TypeScript 编译器的范围。(TypeScript 模块解析功能的唯一目的是支持 IDE 中的类型检查和代码导航。)
推荐阅读
- javascript - NodeJS API 在浏览器上显示错误 404 但使用 Postman 运行
- python - 通过遍历 pandas 中的多个数据框在 python 中创建嵌套函数
- html - 转换属性显然不适用于 display flex
- android - Android 9 中的致命错误:在屏幕之间切换时经常崩溃
- java - 无法解析我在 android studio 中的所有代码上的符号
- php - 尝试突出显示php中的某些单词时出现代码执行错误
- rust - Rust 中的迭代器类型
- amazon-web-services - 使用 url 访问 AWS 存储桶
- build-automation - 将新项目添加到 SharePoint 列表时,向匹配项目类别的用户发送电子邮件通知
- sql - 在当前行中,对代表上周(7 天)记录的行的数据求和