Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何让TypeScript以生成Node.JS代码的方式加载PDF.js NPM模块和@types绑定?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
上下文

我正在尝试将PDF.JS导入TypeScript项目.我使用的是DefinitelyTyped bindings for 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曾被初始化,但如果我在tsconfig关闭Strict,则代码编译,但它编译为:

"use Strict";
exports.__esModule = true;
var PDFJS;
PDFJs.getDocument('Helloworld.pdf').then(console.log);

这显然不起作用.它没有将import语句编译成任何东西.

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

我试过的

我在导入时尝试了不同的变化,但无济于事.切换到要求也似乎没有帮助.

我已经验证了pdjs-dist依赖关系以及@ types / pdfjs-dist依赖关系是直接从NodeJS(非TypeScript程序)中呈现,更新和使用的.

我在tsconfig中尝试了各种模块值.它们有时会更改生成代码,但它们都没有更改它以包含所需的导入.

我已经尝试添加///< reference path =“../ node_modules/@types/pdfjs-dist/index.d.ts”/>进口线以上.这并没有改变这种行为.

环境

tsc版本2.4.2,节点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的实现存在问题.

大佬总结

以上是大佬教程为你收集整理的如何让TypeScript以生成Node.JS代码的方式加载PDF.js NPM模块和@types绑定?全部内容,希望文章能够帮你解决如何让TypeScript以生成Node.JS代码的方式加载PDF.js NPM模块和@types绑定?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。