我正在尝试在离子项目中使用swrve web sdk,但无法对其进行初始化。以下是文档链接
https://docs.swrve.com/developer-documentation/integration/web/#Installing_the_SDK
我已经使用npm命令安装了SDK:
npm install @ swrve / web-sdk
之后,我使用import语句:
从“ swrvesdk”导入SwrveSDK;
在构造函数中,我将其声明为以下内容
SwrveSDK.default.createInstance({
appId: <app_id>,
apiKey: "<web_api_key>",
externalUserId: "<external_user_id>",
});
但是当我运行离子服务时,会出现以下错误
错误TypeError:无法读取未定义的属性'createInstance'
声明npm软件包或网络javascript库的正确方法是什么?
答案 0 :(得分:0)
文档看起来不对。完全错误。
尝试
[,]
我怀疑他们复制并粘贴了CommonJS,然后忘记对其进行编辑。
检查源代码可以确认这一点,告诉我们: https://github.com/Swrve/swrve-web-sdk/blob/release-1_0/SwrveSDK/src/Swrve.ts#L399
declare @i int;
declare @len int;
set @i=1
set @len=(select MAX (len(number) ) from test)
while (@i<=@len)
begin
select number from Factor f where number in (select SUBSTRING(value ,@i,2) from test)
end
看起来如此可疑的原因是,语句import SwrveSDK from "@swrve/web-sdk";
SwrveSDK.createInstance({
appId: <app_id>,
apiKey: "<web_api_key>",
externalUserId: "<external_user_id>",
});
从包的主模块中导入名为SwrveSDK.default.createInstance
的导出,并将其绑定到名称import SwrveSDK from " @swrve/web-sdk";
。当然可以想像,默认导出本身可以具有一个名为default的属性,但是使用CommonJS的示例则相反。
请注意,您可能需要设置default
和SwrveSDK
。
另外,请确保您使用的是TypeScript> = 2.7或ES模块可互操作的加载器,例如SystemJS。