2016-09-27 34 views
8

Próbuję uzyskać zestaw SDK Amazon Cognito Identity w Aurelia. Nie mam dużo doświadczenia z JavaScriptem i jestem bardzo obeznany z różnymi systemami zależności.Jak mogę uruchomić zestaw SDK Amazon Cognito Identity w Aurelia?

Zainstalowałem Cognito SDK przy użyciu: npm install --save amazon-cognito-identity-js

I wtedy edytowane mój plik aurelia_project/aurelia.json jak zasugerowano w dokumentacji Aurelia zawierać nową zależność biblioteki klienta w build.bundles dostawcy wiązka zależności:

"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" 
} 

Jednak gdy próbuję uruchomić kod przy użyciu au run pojawia się błąd: Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/xmlbuilder.js'

Próbowałem dołączyć xmlbuilder do mojego aurelia.js na próżno. Kiedy to jest włączone, kończę na otrzymywaniu tego błędu o lodash: Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/lodash/object/assign.js'

Nie znalazłem żadnego sposobu na to, by przedostać się przez błąd.

Czy jest ktoś, kto zna system zależności Aurelia, który może pomóc?

Dzięki Nathan

EDIT # 2: Chociaż mam obok błędów xmlbuilder/lodash, jakie napotkasz dalszych błędów próbujących zwijaj AWS-SDK. Oto mój obecny 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"] 
    }, 

a błąd Ja obecnie coraz:

Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/crypto.js'

Jeśli usunąć zasoby (lib/region_config.json), a następnie uzyskać ten błąd zamiast : Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/node_modules/aws-sdk/lib/region_config.json.js'

Myślę, że krypto to właściwie obiekt zdefiniowany w aws-sdk/lib/util.js, który jest wymagany przez aws-sdk/lib/region_config.js.

Odpowiedz

6

Zamiast tego spróbuj skompilowanej biblioteki, używając skompilowanej biblioteki z dołączoną listą. Również biblioteka wydaje się zdefiniowanie window.AWS, więc wstrzykiwanie go lub nie będzie działać

{ 
    "name": "aws-sdk", 
    "path": "../node_modules/aws-sdk/dist", 
    "main": "aws-sdk.min", 
    "exports": "AWS" 
} 

UPDATE:

Wydaje się, że jedynym sposobem na import tych bibliotek jest za pomocą sekcji prepend, biblioteki pisać do zmienna okna, więc nadal może być dostępna dla skryptów aplikacji, ale nie importuje ich jak modułów 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" 
    ], 
+0

To działa dla AWS-SDK sam, ale jak tylko dodam Amazonii-Cognito-tożsamość-js to narzeka 'błąd: ENOENT: Nie ma takiego pliku lub katalogu, otwarte„/ Users/nathanskone/Projects/scc/aurelia-app/node_modules/aws-sdk/lib/region_config.json.js'' ponownie. –

+0

To się udało! Chociaż musiałem również dodać jsbn i sjcl do sekcji prepend, ponieważ oba są wymagane przez zestaw SDK Amazon Cognito. –