2017-05-25 4 views
1

Depuis mon précédent post on another question a été supprimé, même s'il était assez explicite dans la présentation du problème (dans ce contexte), je vais essayer à nouveau comme une question autonome. J'essaie de regrouper Amazon Cognito avec aurelia.json. J'ai suivi tout ce que je pouvais mincir dans les réponses fournies par jsachs et Nathan dans le mentioned article, mais je pense que quelque chose est incomplète.Comment regrouper AWS Cognito dans Aurelia Framework

{ 
    "name": "account-components-bundle.js", 
    "source": { 
     "include": [ 
     "**/components/account/**/*.js", 
     "**/components/account/**/*.{html,css}" 
     ] 
    }, 
    "dependencies": [ 
     { 
      "name": "aws-sdk", 
      "path": "../node_modules/aws-sdk/dist", 
      "main": "aws-sdk.min", 
      "exports": "AWS" 
     } 
    ], 
    "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", 
     "node_modules/requirejs/require.js" 
    ] 
    }, 

Si vous ajoutez que la directive préfix, au build ne jetterons aucune erreur, mais je n'ai aucun moyen d'appeler les classes Cognito.

Ajout de la dépendances directive dans le formulaire ci-dessus regrouperons finalement le paquet, mais au chargement de la page, vous obtiendrez l'erreur suivante (s'il vous plaît garder à l'esprit que je ne demande pas quoi que ce soit encore au sein de notre propre code):

Unhandled rejection Error: Script error for "aws-sdk/global", needed by: components/account/login 
http://requirejs.org/docs/errors.html#scripterror 
    at makeError (https://white.dev/dist/aurelia-bundle.js:4419:17) 
    at HTMLScriptElement.onScriptError (https://white.dev/dist/aurelia-bundle.js:5989:36) 
From previous event: 
    at DefaultLoader.loadModule (https://white.dev/dist/aurelia-bundle.js:14914:14) 
    at ViewEngine.importViewModelResource (https://white.dev/dist/aurelia-bundle.js:23006:26) 
    at CompositionEngine.ensureViewModel (https://white.dev/dist/aurelia-bundle.js:24276:32) 
    at CompositionEngine.createController (https://white.dev/dist/aurelia-bundle.js:24252:19) 
    at CompositionEngine._createControllerAndSwap (https://white.dev/dist/aurelia-bundle.js:24227:19) 
    at CompositionEngine.compose (https://white.dev/dist/aurelia-bundle.js:24313:21) 
    at processInstruction (https://white.dev/dist/aurelia-bundle.js:24798:32) 
    at Compose.bind (https://white.dev/dist/aurelia-bundle.js:24689:7) 
    at Controller.bind (https://white.dev/dist/aurelia-bundle.js:23196:24) 
    at View.bind (https://white.dev/dist/aurelia-bundle.js:21200:24) 
    at If._runValueChanged (https://white.dev/dist/aurelia-bundle.js:24887:19) 
    at If.valueChanged (https://white.dev/dist/aurelia-bundle.js:24842:31) 
    at If.bind (https://white.dev/dist/aurelia-bundle.js:24831:12) 
From previous event: 
    at CompositionEngine._createControllerAndSwap (https://white.dev/dist/aurelia-bundle.js:24227:45) 
    at CompositionEngine.compose (https://white.dev/dist/aurelia-bundle.js:24313:21) 
    at TemplatingEngine.compose (https://white.dev/dist/aurelia-bundle.js:24576:38) 
    at Aurelia.setRoot (https://white.dev/dist/aurelia-bundle.js:13886:21) 
    at Object._callee$ (https://white.dev/dist/app-bundle.js:86:37) 
    at tryCatch (https://white.dev/dist/aurelia-bundle.js:3:27199) 
    at Generator.invoke [as _invoke] (https://white.dev/dist/aurelia-bundle.js:3:28901) 
    at Generator.t.(anonymous function) [as next] (https://white.dev/dist/aurelia-bundle.js:3:27447) 
    at step (https://white.dev/dist/app-bundle.js:25:44) 
    at https://white.dev/dist/app-bundle.js:36:29 
From previous event: 
    at step (https://white.dev/dist/app-bundle.js:35:55) 
    at https://white.dev/dist/app-bundle.js:43:24 
From previous event: 
    at Object.<anonymous> (https://white.dev/dist/app-bundle.js:22:20) 
    at Object.configure (https://white.dev/dist/app-bundle.js:97:25) 
    at https://white.dev/dist/aurelia-bundle.js:12465:29 
From previous event: 
    at config (https://white.dev/dist/aurelia-bundle.js:12460:56) 
    at https://white.dev/dist/aurelia-bundle.js:12496:14 
From previous event: 
    at bootstrap (https://white.dev/dist/aurelia-bundle.js:12495:26) 
    at https://white.dev/dist/aurelia-bundle.js:12482:9 
    at <anonymous> 
From previous event: 
    at run (https://white.dev/dist/aurelia-bundle.js:12477:61) 
    at Object.<anonymous> (https://white.dev/dist/aurelia-bundle.js:12502:37) 
    at Object.execCb (https://white.dev/dist/aurelia-bundle.js:5947:33) 
    at Module.check (https://white.dev/dist/aurelia-bundle.js:5134:51) 
    at Module.enable (https://white.dev/dist/aurelia-bundle.js:5427:22) 
    at Object.enable (https://white.dev/dist/aurelia-bundle.js:5808:39) 
    at Module.<anonymous> (https://white.dev/dist/aurelia-bundle.js:5412:33) 
    at https://white.dev/dist/aurelia-bundle.js:4385:23 
    at each (https://white.dev/dist/aurelia-bundle.js:4310:31) 
    at Module.enable (https://white.dev/dist/aurelia-bundle.js:5364:17) 
    at Module.init (https://white.dev/dist/aurelia-bundle.js:5039:26) 
    at https://white.dev/dist/aurelia-bundle.js:5711:36 

Le moment où je vais plus loin et essaie d'étendre les dépendances (ne pas utiliser les bibliothèques déjà compilées), j'arrive au même vieux problème mentionné dans le previous post.

"dependencies": [ 
     { 
     "name": "lodash", 
     "path": "../node_modules/lodash", 
     "main": "index" 
     }, 
     { 
     "name": "xmlbuilder", 
     "path": "../node_modules/xmlbuilder", 
     "main": "lib/index" 
     }, 
     { 
      "name": "aws-sdk", 
      "path": "../node_modules/aws-sdk", 
      "main": "lib/aws", 
      "exports": "AWS" 
     } 
    ], 

Cette dépendances, lors de l'exécution au build, conduira à

File not found or not accessible: /path/to/project/node_modules/aws-sdk/lib/region_config_data.json.js. Requested by /path/to/project/node_modules/aws-sdk/lib/aws.js 
{ Error: ENOENT: no such file or directory, open '/path/to/project/node_modules/aws-sdk/lib/region_config_data.json.js' 
    at Object.fs.openSync (fs.js:584:18) 
    at Object.fs.readFileSync (fs.js:491:33) 
    at Object.exports.readFileSync (/path/to/project/node_modules/aurelia-cli/lib/file-system.js:74:13) 
    at fileRead (/path/to/project/node_modules/aurelia-cli/lib/build/bundled-source.js:101:27) 
    at Object.context.fileRead (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:179:18) 
    at Object.context.load (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:370:32) 
    at Module.load (eval at <anonymous> (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:14:1), <anonymous>:832:29) 
    at Module.fetch (eval at <anonymous> (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:14:1), <anonymous>:822:66) 
    at Module.check (eval at <anonymous> (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:14:1), <anonymous>:854:30) 
    at Module.enable (eval at <anonymous> (/path/to/project/node_modules/aurelia-cli/lib/build/amodro-trace/lib/loader/Loader.js:14:1), <anonymous>:1173:22) 
errno: -2, 
code: 'ENOENT', 
syscall: 'open', 

Je pense que cela est causé par le fait que requirejs par rapport à nodejs require() ne supportent pas le chargement des fichiers JSON et il s'attend toujours le fichier être un js un.

À ce stade de ma quête de débogage, je suis un peu coincé. Quelqu'un at-il des suggestions sur la façon dont cela peut être réalisé? Je serais très reconnaissant.

Pour éviter et exclure certaines questions précédentes à mes démarches, j'ai essayé d'ajouter aux dépendances de faisceau « amazon-Cognito-identité-js » et, dans plus d'une forme (fichiers dist et lib). Le résultat est le même que celui ci-dessus. Je suis coincé à l'erreur json.js.

Modifier 1

j'ai réussi à nettoyer toutes les erreurs de compilation avec le formulaire ci-dessous pour aurelia.json, mais les classes ne sont pas charge correctement.

"bundles": [ 
    { 
    "name": "app-bundle.js", 
    "source": { 
     "include": [ 
     "**/src/main.js", 
     "**/src/app.js", 
     "**/src/environment.js", 
     "**/src/app.{html,css}" 
     ] 
    } 
    }, 
    ... 
    { 
    "name": "vendor-bundle.js", 
    "dependencies": [ 
     ... 
     { 
     "name": "lodash", 
     "path": "../node_modules/lodash", 
     "main": "index" 
     }, 
     { 
     "name": "xmlbuilder", 
     "path": "../node_modules/xmlbuilder", 
     "main": "lib/index" 
     }, 
     { 
     "name": "aws-sdk", 
     "path": "../node_modules/aws-sdk", 
     "main": "dist/aws-sdk", 
     "exports": "AWS" 
     } 
    ], 
    "append": [ 
     "node_modules/amazon-cognito-identity-js/dist/aws-cognito-sdk.min.js", 
     "node_modules/amazon-cognito-identity-js/dist/amazon-cognito-identity.min.js" 
    ] 
    }, 
    ... 
] 
+0

Avez-vous essayé d'ajouter le fichier json à la liste des fichiers qui doivent être inclus pour ce dépôt? –

+0

@AshleyGrant J'ai essayé le '{" nom "suivant:" aws-sdk "," chemin ":" ../node_modules/aws-sdk "," main ":" lib/aws "," exports ":" AWS "," resources ": [" lib/region_config_data.json "]}'. Le résultat est le même. –

Répondre

1

drôle pour donner la réponse moi-même, mais bon ... si elle aider les autres ...

j'ai réussi à regrouper les scripts en les préfixant dans le aurelia-bundle.js devant chaque d'autres scripts qui doivent être chargés. S'il vous plaît comprendre, que (pour moi), en plaçant les scripts dans une autre position que ce qui suit, se terminera par ni charger correctement ou ne pas charger du tout. Ne prétendez pas que c'est une solution générale, mais bon ... travaille pour moi. Veuillez trouver un historique plus détaillé here.

{ 
    "name": "aurelia-bundle.js", 
    "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/babel-polyfill/dist/polyfill.min.js", 
    "node_modules/whatwg-fetch/fetch.js", 
    "node_modules/bluebird/js/browser/bluebird.core.js", 
    "node_modules/aurelia-cli/lib/resources/scripts/configure-bluebird.js", 
    "node_modules/requirejs/require.js" 
    ], 
    "dependencies": [ 
    "aurelia-animator-css", 
    "aurelia-binding", 
    "aurelia-bootstrapper", 
    "aurelia-dependency-injection", 
    "aurelia-event-aggregator",