【问题标题】:How to use a node module in Angular which is not created for Angular?如何在 Angular 中使用不是为 Angular 创建的节点模块?
【发布时间】:2018-02-28 09:53:00
【问题描述】:
示例模块:https://www.npmjs.com/package/qrcode
我很容易在纯 javascript 中使用它:
var QRCode = require('qrcode')
QRCode.toDataURL('I am a pony!', function (err, url) {
console.log(url)
})
但我不能在 Angular 中使用“require”,对吧?
Anguar 有这个:
import { X } from Y
如何在 Angular 中使用二维码阅读器?在这个例子中 X 和 Y 是什么?
【问题讨论】:
标签:
javascript
angular
typescript
require
【解决方案1】:
老实说,这取决于包装。但对于大多数情况来说,这样的事情会奏效。
import * as QRCode from 'qrcode'
// Or
import QRCode from 'qrcode'
或者,如果你已经使用 Angular CLI 打包了库,你可以强制 typescript 忽略它没有类型的包的使用:
delcare var QRCode: any;
【解决方案2】:
您可以安装安装包,以及类型脚本环境中的完整功能,例如 Angular:
npm install --save qrcode && npm install --save-dev @types/qrcode
然后在您的组件中,您现在可以import * as QRCode from 'qrcode' 并在您的打字稿环境中使用它。