我在JavaScript文件中使用 btoa 功能。它应该在使用Jasmine和浏览器的单元测试中运行。 由于 btoa 在节点中不可用,因此我导入了npm包btoa。 我正在使用browserify,因为这个功能已在浏览器中定义,所以我不想将它与我的JS捆绑在一起。 我使用以下方法导入它:
var btoa = require("btoa");
并称之为:
var x = btoa(plainText);
问题是当我使用browserify时,该函数与输出js捆绑在一起。我尝试了 -i btoa 标志,但结果是我在浏览器中遇到“btoa不是函数”错误。 如何在运行单元测试时导入该模块?
由于
答案 0 :(得分:0)
我通过使用“btoa-lite”包而不是btoa包解决了这个问题。 “btoa-lite”定义了btoa-node.js,它用于节点(和Jasmine单元测试)btoa-browser.js,它在捆绑JavaScript依赖项时浏览引用。 btoa-browser.js只是转发对浏览器中实现的btoa函数的调用。 “atob-lite”包也一样。