gpt4 book ai didi

node.js - 如何让 TypeScript 以生成有效 Node.JS 代码的方式加载 PDF.js NPM 模块和@types 绑定(bind)?

转载 作者:搜寻专家 更新时间:2023-10-30 20:39:16 25 4
gpt4 key购买 nike

上下文

我正在尝试导入 PDF.JS到 TypeScript 项目中。我正在使用 DefinitelyTyped bindings对于 pdfjs-dist , 通过 npm install @types/pdfjs-dist 安装和 npm install pdfjs-dist .

问题

我似乎无法使用 TypeScript 来编译我的项目。我正在使用直接从 DefinitelyTyped 上的测试复制的源代码。这是我尝试编译的简化(仅删除)代码(来自 DefinitelyTyped 的测试代码的精确副本也以同样的方式失败):

import { PDFJSStatic } from 'pdfjs-dist';
var PDFJS: PDFJSStatic;
PDFJS.getDocument('helloworld.pdf').then(console.log);

TypeScript 找到类型声明模块,并考虑导入 PDFJSStatic有效。它不认为PDFJS曾经初始化过,但如果我关闭 stricttsconfig ,代码编译,但编译为:

"use strict";
exports.__esModule = true;
var PDFJS;
PDFJS.getDocument('helloworld.pdf').then(console.log);

这显然行不通。它没有编译 import声明成任何东西。

问题

我如何将 PDF.JS 导入 TypeScript 项目并通过 @types/pdfjs-dist 中的声明文件将其编译为工作 Node.JS 代码?

我尝试过的

我在 import 上尝试了不同的变体,无济于事。切换到 require似乎也没有帮助。

我已经验证 pdjs-dist依赖项,以及 @types/pdfjs-dist依赖项存在、更新并可直接从 NodeJS(非 TypeScript 程序)使用。

我已经为 module 尝试了不同的值在我的 tsconfig.他们有时会更改生成的代码,但没有人更改它以包含所需的导入。

我试过添加 /// <reference path="../node_modules/@types/pdfjs-dist/index.d.ts" />import 之上线。这并没有改变行为。

环境

tsc版本 2.4.2、 Node 8.5 和 npm 5.3.我有以下 tsconfig.json在我的项目根目录中:

{
"compilerOptions": {
"allowJs":true,
"rootDir": ".",
"outDir": "dist",
"moduleResolution": "node"
},
"include": [
"src/**/*"
],
"exclude": [
"**/*.spec.ts",
"dist/**/*"
]
}

最佳答案

也许你可以使用require函数。

添加@types/node包,并在源代码的顶部写上require('pdfjs-dist')。因此,您可以像下面这样修改您的代码。

现在,这段代码可以工作了。

import { PDFJSStatic } from 'pdfjs-dist';
const PDFJS: PDFJSStatic = require('pdfjs-dist');
PDFJS.getDocument('helloworld.pdf').then(console.log);

我认为 @types/pdfjs-dist 的实现有问题。

关于node.js - 如何让 TypeScript 以生成有效 Node.JS 代码的方式加载 PDF.js NPM 模块和@types 绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46738700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com