我试图在我的离子项目中使用swrve,但无法初始化它。以下是文档链接
我已经使用npm命令安装了SDK:
npm install @swrve/web
之后,我使用import语句:
从“SwrveSDK”导入swrvesdk;
在构造函数中,我将其声明为
SwrveSDK.default.createInstance({
appId: <app_id>,
apiKey: "<web_api_key>",
externalUserId: "<external_user_id>",
});
但是,当我运行离子服务时,我会出现以下错误
错误TypeError:无法读取未定义的属性“createInstance”
声明npm包或web javascript库的正确方法是什么?
发布于 2018-10-21 10:48:37
文件看上去不对。完全错了。
试一试
import SwrveSDK from "@swrve/web-sdk";
SwrveSDK.createInstance({
appId: <app_id>,
apiKey: "<web_api_key>",
externalUserId: "<external_user_id>",
});
我怀疑他们复制和粘贴了CommonJS,然后忘记编辑它。
对源代码的检查证实了这一点,提示行是0/SwrveSDK/src/Swrve.ts#L399。
SwrveSDK.default.createInstance
看起来如此可疑的原因是import SwrveSDK from " @swrve/web-sdk";
语句从包的主模块导入名为default
的导出,并将其绑定到名称SwrveSDK
。当然,可以想象默认导出本身可能有一个名为default的属性,但使用CommonJS的示例则表明并非如此。
注意,您可能需要设置--allowSyntheticDefaultImports
和--esModuleInterop
。还要确保您使用的是TypeScript >= 2.7或ES模块互操作感知加载器(如SystemJS )。
https://stackoverflow.com/questions/52918454
复制