2015-05-20 25 views
2

我需要的是一种将我所有的JavaScript依赖项与Webpack(与socket.io-client一样)绑定到一个JavaScript文件中的方法,但是我无法通过twilio.js来完成。是否可以使用webpack加载twilio.js库?

我可以看到最新twilio.js的是列在这里: https://www.twilio.com/docs/client/twilio-js作为脚本标签:

//static.twilio.com/libs/twiliojs/1.2/twilio.min.js

但是,这仅仅是为建设装载机脚本真正twilio.js库在这里:

https://static.twilio.com/libs/twiliojs/refs/82278dd/twilio.min.js

而这些都不支持Webpack。

https://github.com/twilio/twilio-node也是exsistes,但是这仅适用于node.js - 不仅仅是纯客户端JavaScript。

所以我的问题是,有没有办法要求与Webpack twilio.js库?

回答

1

我知道这是迟到了,但我也是,只是与这个问题搏斗。作为Node,TypeScript和Webpack的新手,我没有明白Webpack应该用于客户端脚本,而Twilio-node库是服务器端库(如松散地讨论的here)。换句话说,你不应该在任何客户端脚本中使用require('twilio') ......只能使用Node脚本。

我有以下成功:

  1. 添加<script type="text/javascript" src="//static.twilio.com/libs/twiliojs/1.2/twilio.min.js"></script>我的主要.html
  2. 使用var twilio = require('twilio');一个节点(服务器)的脚本里面...... 在客户端JavaScript (例如,在API方法内部添加Twilio调用,该方法可以使用框架创建,如Express
  3. 如果您碰巧在使用TypeScript进行节点脚本编写,请使用转译程序,例如原生TypeScript转译程序tsc(从命令行轻松完成)。如果使用JavaScript,请使用GulpJS(我最喜欢的)或GruntJS来帮助你巩固,甚至运行节点服务器端脚本
  4. 使用的WebPack为别的

再说一遍,我是新来的这一点,所以我如果我错误地陈述了任何内容,可以打开输入或更正。

3

此答案适用于Twilio.js客户端版本1.3.16(script filedocumentation)。

Twilio代码库非常糟糕。他们不会将他们的代码发布到npm,只需从他们的CDN加载twilio.js文件就会产生副作用,包括从window读取并循环浏览页面上的所有脚本标记。这意味着,即使在下面的答案中,客户端代码也不能加载到节点中,阻止服务器端渲染和测试等。

我发布了代码的package to npm as a mirror,但它不直接使用。 Webpack无法正确处理他们设置的虚假需求结构。首先,安装:

npm install --save twilio-client-mirror 

即可使用,需要为正常:

import * as loadTwilio from 'twilio-client-mirror'; 

但是,你不能真正使用loadTwilio对象。你必须引用全局Twilio对象,通过脚本注入:

const Twilio = window.Twilio; 
Twilio.Device.setup(token); 
... 

这是我做了尝试,包括现代的代码库这里面片状代码第一次尝试。希望随着即将到来的1.4测试版,他们将解决这些问题。

+0

我错过了一步吗?我试图在React Native应用程序中使用它,但我缺少twilio/util和其他一些twilio/*文件。 – Rjdlee

+0

在React Native中未经测试。只有一个构建的JavaScript文件,不是多个。 –

+0

如果您查看twilio-client-mirror/twilio.js的源代码,您会发现它需要'./twilio/util'和其他类似文件的语句。 – Rjdlee

相关问题