在 TypeScript 中需要 JavaScript Node.js 模块(未设置allowJs')

Requiring a JavaScript Node.js module in TypeScript (allowJs#39; is not set)(在 TypeScript 中需要 JavaScript Node.js 模块(未设置allowJs))
本文介绍了在 TypeScript 中需要 JavaScript Node.js 模块(未设置allowJs')的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我在 Electron 中有一个 Angular2 应用程序.现在,我想使用 @pokusew/pcsclite 库来使用 NFC 功能.该库使用原生 Node.js 模块.

I have an Angular2 app inside Electron. Now, I would like to use the @pokusew/pcsclite library to use NFC functionality. This library uses native Node.js modules.

当我尝试 require 我的 component.ts 中的库时,如下所示:

When I try to require the library in my component.ts like this:

declare var pcsclite: any;
var pcsclite = require('../../../node_modules/@pokusew/pcsclite/');

我收到错误提示:

错误 TS6143:模块../.."已解析为../../lib/pcsclite.js",但未设置--allowJs".

error TS6143: Module '../..' was resolved to '../../lib/pcsclite.js', but '--allowJs' is not set.

另一方面,如果我尝试通过 index.html 中的 <script>-Tag 导入库,则会收到一条错误消息:

On the other hand, if I try to import the library via a <script>-Tag in the index.html I get an error that says:

ZoneAwareError 错误:找不到绑定文件.试过了:...

ZoneAwareError Error: Could not locate the bindings file. Tried:...

最后,如果我 var pcsclite = require('@pokusew/pcsclite');main.js 中,那么它可以工作,但是我没有可以从我的 Angular 应用程序中访问它.

Finally, if I var pcsclite = require('@pokusew/pcsclite'); in the main.js, then it works, but then I don't have access to it from inside my Angular app.

推荐答案

像这样在 tsconfig.json 中添加 allowJs 选项:
正如 fabian lauer 所说,还添加了 outDir 选项来指定编译文件的位置:

Add the allowJs option in your tsconfig.json like this:
as fabian lauer said also add outDir option to specify where your compiled files will be:

{
    "compilerOptions": {
        "outDir": "./built", <--- add this
        "allowJs": true,  <--- and this
        "target": "es5"
    },
    "include": [
        "./src/**/*"
    ]
}

这篇关于在 TypeScript 中需要 JavaScript Node.js 模块(未设置allowJs')的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

在开发JS过程中,会经常遇到两个小数相运算的情况,但是运算结果却与预期不同,调试一下发现计算结果竟然有那么长一串尾巴。如下图所示: 产生原因: JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会
问题描述: 在javascript中引用js代码,然后导致反斜杠丢失,发现字符串中的所有\信息丢失。比如在js中引用input type=text onkeyup=value=value.replace(/[^\d]/g,) ,结果导致正则表达式中的\丢失。 问题原因: 该字符串含有\,javascript对字符串进行了转
Rails/Javascript: How to inject rails variables into (very) simple javascript(Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript)
CoffeeScript always returns in anonymous function(CoffeeScript 总是以匿名函数返回)
Ordinals in words javascript(javascript中的序数)
getFullYear returns year before on first day of year(getFullYear 在一年的第一天返回前一年)