如何让 Amazon Cognito Identity SDK 在 Aurelia 中运行?
How can I get the Amazon Cognito Identity SDK working in Aurelia?
我正在尝试让 Amazon Cognito Identity SDK 在 Aurelia 中运行。我没有很多 Javascript 经验,对各种依赖系统非常不熟悉。
我安装了 Cognito SDK 使用:npm install --save amazon-cognito-identity-js
然后我按照 Aurelia 文档中的建议编辑了我的 aurelia_project/aurelia.json
文件,以在 build.bundles 供应商捆绑依赖项中包含新的客户端库依赖项:
"sjcl",
"jsbn",
{
"name": "aws-sdk",
"path": "../node_modules/aws-sdk/",
"main": "dist/aws-sdk"
},
{
"name": "amazon-cognito-identity-js",
"path": "../node_modules/amazon-cognito-identity-js/dist",
"main": "amazon-cognito-identity.min"
}
但是,当我尝试使用 au run
运行 代码时,出现错误:Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/xmlbuilder.js'
我曾尝试将 xmlbuilder 添加到我的 aurelia.json 中,但没有成功。当它包含在内时,我最终收到关于 lodash 的错误:Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/lodash/object/assign.js'
我还没有找到解决 lodash 错误的方法。
有熟悉 Aurelia 依赖系统的人可以提供帮助吗?
谢谢,
内森
编辑 #2: 当我克服了 xmlbuilder/lodash 错误时,我在尝试捆绑 aws-sdk 时遇到了 运行 进一步的错误。这是我目前的 aurelia.json:
"dependencies": [
{
"name": "xmlbuilder",
"path": "../node_modules/xmlbuilder/lib",
"main": "index"
},
{
"name": "aws-sdk",
"path": "../node_modules/aws-sdk",
"main": "index",
"resources": ["lib/region_config.json"]
},
我目前遇到的错误是:
Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/crypto.js'
如果我删除资源 (lib/region_config.json),则会出现此错误:
Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/node_modules/aws-sdk/lib/region_config.json.js'
我觉得crypto其实是在aws-sdk/lib/util.js中定义的一个对象,aws-sdk/lib/region_config.js.
需要的
尝试编译库,使用捆绑的编译库就好了。
此外,库似乎定义了 window.AWS
,因此注入或不注入都有效
{
"name": "aws-sdk",
"path": "../node_modules/aws-sdk/dist",
"main": "aws-sdk.min",
"exports": "AWS"
}
更新:
似乎导入这些库的唯一方法是使用前置部分,库写入 window 变量,因此您的应用程序脚本仍然可以访问它,只是不像 ES6 那样导入它们模块。
"prepend": [
"node_modules/aws-sdk/dist/aws-sdk.min.js",
"node_modules/amazon-cognito-identity-js/dist/aws-cognito-sdk.min.js",
"node_modules/amazon-cognito-identity-js/dist/amazon-cognito-identity.min.js",
"node_modules/bluebird/js/browser/bluebird.core.js",
"scripts/require.js"
],
我正在尝试让 Amazon Cognito Identity SDK 在 Aurelia 中运行。我没有很多 Javascript 经验,对各种依赖系统非常不熟悉。
我安装了 Cognito SDK 使用:npm install --save amazon-cognito-identity-js
然后我按照 Aurelia 文档中的建议编辑了我的 aurelia_project/aurelia.json
文件,以在 build.bundles 供应商捆绑依赖项中包含新的客户端库依赖项:
"sjcl",
"jsbn",
{
"name": "aws-sdk",
"path": "../node_modules/aws-sdk/",
"main": "dist/aws-sdk"
},
{
"name": "amazon-cognito-identity-js",
"path": "../node_modules/amazon-cognito-identity-js/dist",
"main": "amazon-cognito-identity.min"
}
但是,当我尝试使用 au run
运行 代码时,出现错误:Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/xmlbuilder.js'
我曾尝试将 xmlbuilder 添加到我的 aurelia.json 中,但没有成功。当它包含在内时,我最终收到关于 lodash 的错误:Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/lodash/object/assign.js'
我还没有找到解决 lodash 错误的方法。
有熟悉 Aurelia 依赖系统的人可以提供帮助吗?
谢谢, 内森
编辑 #2: 当我克服了 xmlbuilder/lodash 错误时,我在尝试捆绑 aws-sdk 时遇到了 运行 进一步的错误。这是我目前的 aurelia.json:
"dependencies": [
{
"name": "xmlbuilder",
"path": "../node_modules/xmlbuilder/lib",
"main": "index"
},
{
"name": "aws-sdk",
"path": "../node_modules/aws-sdk",
"main": "index",
"resources": ["lib/region_config.json"]
},
我目前遇到的错误是:
Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/crypto.js'
如果我删除资源 (lib/region_config.json),则会出现此错误:
Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/node_modules/aws-sdk/lib/region_config.json.js'
我觉得crypto其实是在aws-sdk/lib/util.js中定义的一个对象,aws-sdk/lib/region_config.js.
需要的尝试编译库,使用捆绑的编译库就好了。
此外,库似乎定义了 window.AWS
,因此注入或不注入都有效
{
"name": "aws-sdk",
"path": "../node_modules/aws-sdk/dist",
"main": "aws-sdk.min",
"exports": "AWS"
}
更新:
似乎导入这些库的唯一方法是使用前置部分,库写入 window 变量,因此您的应用程序脚本仍然可以访问它,只是不像 ES6 那样导入它们模块。
"prepend": [
"node_modules/aws-sdk/dist/aws-sdk.min.js",
"node_modules/amazon-cognito-identity-js/dist/aws-cognito-sdk.min.js",
"node_modules/amazon-cognito-identity-js/dist/amazon-cognito-identity.min.js",
"node_modules/bluebird/js/browser/bluebird.core.js",
"scripts/require.js"
],