在Jasmine和浏览器中使用btoa

时间:2017-10-05 12:26:31

标签: javascript browserify

我在JavaScript文件中使用 btoa 功能。它应该在使用Jasmine和浏览器的单元测试中运行。 由于 btoa 在节点中不可用,因此我导入了npm包btoa。 我正在使用browserify,因为这个功能已在浏览器中定义,所以我不想将它与我的JS捆绑在一起。 我使用以下方法导入它:

var btoa = require("btoa");

并称之为:

var x = btoa(plainText);

问题是当我使用browserify时,该函数与输出js捆绑在一起。我尝试了 -i btoa 标志,但结果是我在浏览器中遇到“btoa不是函数”错误。 如何在运行单元测试时导入该模块?

由于

1 个答案:

答案 0 :(得分:0)

我通过使用“btoa-lite”包而不是btoa包解决了这个问题。 “btoa-lite”定义了btoa-node.js,它用于节点(和Jasmine单元测试)btoa-browser.js,它在捆绑JavaScript依赖项时浏览引用。 btoa-browser.js只是转发对浏览器中实现的btoa函数的调用。 “atob-lite”包也一样。