我想在项目中使用twilio api,但是当我在打字稿文件中导入twilio时出现错误

时间:2019-06-28 19:36:11

标签: node.js angular typescript npm twilio

我在项目中使用了Twilio Api,但无法在我的打字稿文件中导入api,这样做会导致错误。 如果我在JavaScript文件中使用此api,则可以正常使用,但在打字稿中却无法使用。

这些是错误-


ERROR in ./node_modules/aws-sign2/index.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/aws-sign2'
ERROR in ./node_modules/aws4/aws4.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/aws4'
ERROR in ./node_modules/ecc-jsbn/index.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/ecc-jsbn'
ERROR in ./node_modules/http-signature/lib/signer.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/http-signature/lib'
ERROR in ./node_modules/http-signature/lib/verify.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/http-signature/lib'
ERROR in ./node_modules/oauth-sign/index.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/oauth-sign'
ERROR in ./node_modules/request/lib/helpers.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/request/lib'
ERROR in ./node_modules/request/lib/hawk.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/request/lib'
ERROR in ./node_modules/request/lib/oauth.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/request/lib'
ERROR in ./node_modules/scmp/index.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/scmp'
ERROR in ./node_modules/sshpk/lib/key.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib'
ERROR in ./node_modules/sshpk/lib/fingerprint.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib'
ERROR in ./node_modules/sshpk/lib/signature.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib'
ERROR in ./node_modules/sshpk/lib/private-key.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib'
ERROR in ./node_modules/sshpk/lib/certificate.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib'
ERROR in ./node_modules/sshpk/lib/identity.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib'
ERROR in ./node_modules/sshpk/lib/dhe.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib'
ERROR in ./node_modules/sshpk/lib/utils.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib'
ERROR in ./node_modules/sshpk/lib/formats/pem.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib/formats'
ERROR in ./node_modules/sshpk/lib/formats/ssh-private.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib/formats'
ERROR in ./node_modules/sshpk/lib/formats/openssh-cert.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/sshpk/lib/formats'
ERROR in ./node_modules/twilio/lib/webhooks/webhooks.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/twilio/lib/webhooks'
ERROR in ./node_modules/twilio/node_modules/jwa/index.js
Module not found: Error: Can't resolve 'crypto' in '/home/prajwal/Work/tracexpence/node_modules/twilio/node_modules/jwa'
ERROR in ./node_modules/deprecate/index.js
Module not found: Error: Can't resolve 'os' in '/home/prajwal/Work/tracexpence/node_modules/deprecate'
ERROR in ./node_modules/request/request.js
Module not found: Error: Can't resolve 'zlib' in '/home/prajwal/Work/tracexpence/node_modules/request'

这是在打字稿文件中导入的

import * as twilio from 'twilio';

    const obj = {
        'accountSid': 'Axxxxxxxxxxxxxxxxxxxxxxx',
        'authToken': 'exxxxxxxx',
    };

    const client = twilio(obj.accountSid, obj.authToken);

2 个答案:

答案 0 :(得分:1)

这里是Twilio开发人员的传播者。

Twilio节点模块不适用于客户端JavaScript,这就是为什么您的Angular应用程序失败的原因。

这是因为Twilio节点模块使用了您的帐户SID和身份验证令牌。您不应在客户端存储或使用您的身份验证令牌,因为它可能被恶意用户拦截并用于滥用您的帐户。

相反,您应该在服务器端实现Twilio API的用法,然后从Angular应用程序调用服务器。

答案 1 :(得分:0)

这是由依赖项导入浏览器中不可用的节点模块引起的。将出现错误的模块添加到package.json中:

"browser": {
    "http": false,
    "https":false,
    "net": false,
    "path": false,
    "stream": false,
    "tls": false
}

您不能在Angular项目中使用Twilio库。 !!!