2016-09-18 3 views
2

私はAureliaの公式チュートリアルに従って連絡先リストアプリケーションを構築しています。Aureliaの公式コンタクトリストのチュートリアルは、ブートストラップ設定を追加した後にレンダリングに失敗する

私は「既定のルートを構築する」ステップで立ち往生しています。私は本当に腹を立てます。 、

Uncaught TypeError: h.load is not a function 

    Unhandled rejection Error: Failed loading required CSS file: ../node_modules/bootstrap/css/bootstrap.css 
at fixupCSSUrls (http://localhost:9000/scripts/vendor-bundle.js:23357:13) 
at http://localhost:9000/scripts/vendor-bundle.js:23396:16 

は今、私はたくさんググ:

私はチュートリアルに示すように、ブートストラップやjqueryのためのベンダー依存関係を追加しましたが、私はページを起動すると、空白とコンソール出力いくつかのエラーをレンダリング同じ問題を抱える複数のユーザーが見つかりましたが、すべての修正が機能しませんでした。私はいくつかの修正を試み、タイプミスやエラーをチェックしました(私はチュートリアルの途中で何回入力ミスがあったのでしょうか?)、au run --watchを再起動して、チュートリアルページからコードを直接貼り付けてコピーします私の学習には役立たないので、これをしてください。しかし、私は絶望的でした)。何も、全く同じエラーが発生し続け、ページはまだ空白です。私は公式のチュートリアルを完成させるような、このような小さな愚かな問題については本当に驚いています。

完全ソースhere私は、ソースベースの見た目を正確に示すために、すべてのファイルを目的に含むようにしました。

aurelia.json

{ 
    "name": "Contact Manager", 
    "type": "project:application", 
    "platform": { 
    "id": "web", 
    "displayName": "Web", 
    "output": "scripts" 
    }, 
    "transpiler": { 
    "id": "babel", 
    "displayName": "Babel", 
    "fileExtension": ".js", 
    "options": { 
     "plugins": [ 
     "transform-es2015-modules-amd" 
     ] 
    }, 
    "source": "src/**/*.js" 
    }, 
    "markupProcessor": { 
    "id": "none", 
    "displayName": "None", 
    "fileExtension": ".html", 
    "source": "src/**/*.html" 
    }, 
    "cssProcessor": { 
    "id": "none", 
    "displayName": "None", 
    "fileExtension": ".css", 
    "source": "src/**/*.css" 
    }, 
    "editor": { 
    "id": "vscode", 
    "displayName": "Visual Studio Code" 
    }, 
    "unitTestRunner": { 
    "id": "karma", 
    "displayName": "Karma", 
    "source": "test/unit/**/*.js" 
    }, 
    "paths": { 
    "root": "src", 
    "resources": "src/resources", 
    "elements": "src/resources/elements", 
    "attributes": "src/resources/attributes", 
    "valueConverters": "src/resources/value-converters", 
    "bindingBehaviors": "src/resources/binding-behaviors" 
    }, 
    "testFramework": { 
    "id": "jasmine", 
    "displayName": "Jasmine" 
    }, 
    "build": { 
    "targets": [ 
     { 
     "id": "web", 
     "displayName": "Web", 
     "output": "scripts" 
     } 
    ], 
    "loader": { 
     "type": "require", 
     "configTarget": "vendor-bundle.js", 
     "includeBundleMetadataInConfig": "auto", 
     "plugins": [ 
     { 
      "name": "text", 
      "extensions": [ 
      ".html", 
      ".css" 
      ], 
      "stub": true 
     } 
     ] 
    }, 
    "options": { 
     "minify": "stage & prod", 
     "sourcemaps": "dev & stage" 
    }, 
    "bundles": [ 
     { 
     "name": "app-bundle.js", 
     "source": [ 
      "[**/*.js]", 
      "**/*.{css,html}" 
     ] 
     }, 
     { 
     "name": "vendor-bundle.js", 
     "prepend": [ 
      "node_modules/bluebird/js/browser/bluebird.core.js", 
      "scripts/require.js" 
     ], 
     "dependencies": [ 
      "aurelia-binding", 
      "aurelia-bootstrapper", 
      "aurelia-dependency-injection", 
      "aurelia-event-aggregator", 
      "aurelia-framework", 
      "aurelia-history", 
      "aurelia-history-browser", 
      "aurelia-loader", 
      "aurelia-loader-default", 
      "aurelia-logging", 
      "aurelia-logging-console", 
      "aurelia-metadata", 
      "aurelia-pal", 
      "aurelia-pal-browser", 
      "aurelia-path", 
      "aurelia-polyfills", 
      "aurelia-route-recognizer", 
      "aurelia-router", 
      "aurelia-task-queue", 
      "aurelia-templating", 
      "aurelia-templating-binding", 
      { 
      "name": "text", 
      "path": "../scripts/text" 
      }, 
      { 
      "name": "aurelia-templating-resources", 
      "path": "../node_modules/aurelia-templating-resources/dist/amd", 
      "main": "aurelia-templating-resources" 
      }, 
      { 
      "name": "aurelia-templating-router", 
      "path": "../node_modules/aurelia-templating-router/dist/amd", 
      "main": "aurelia-templating-router" 
      }, 
      { 
      "name": "aurelia-testing", 
      "path": "../node_modules/aurelia-testing/dist/amd", 
      "main": "aurelia-testing", 
      "env": "dev" 
      }, 
      "jquery", 
      { 
      "name": "bootstrap", 
      "path": "../node_modules/bootstrap/dist", 
      "main": "js/bootstrap", 
      "deps": ["jquery"], 
      "exports": "$", 
      "resources": [ 
       "css/bootstrap.css" 
      ] 
      } 
     ] 
     } 
    ] 
    } 
} 

app.js

import { Router, RouterConfiguration} from 'aurelia-router'; 

export class App { 
    router: Router; 

    configureRouter(config: RouterConfiguration, router: Router) { 
    config.title = 'Contacts'; 
    config.map([ 
     { route: '', moduleId: 'no-selection', title: 'Select' }, 
     { route: 'contact/:id', muduleId: 'contact-detail', name:'contacts' } 
    ]); 

    this.router = router; 
    } 
} 

app.html

<template> 
    <require from="../node_modules/bootstrap/css/bootstrap.css"></require> 
    <require from="./styles.css"></require> 

    <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> 
    <div class="navbar-header"> 
     <a class="navbar-brand" href="#"> 
     <i class="fa fa-user"></i> 
     <span>Contacts</span> 
     </a> 
    </div> 
    </nav> 

    <div class="container"> 
    <div class="row"> 
     <div class="col-md-4"> 
     Contact List Placeholder 
     </div> 

     <router-view class="col-md-8"></router-view> 
    </div> 
    </div> 
</template> 

答えて

1

<require from="../node_modules/bootstrap/css/bootstrap.css"></require>

旧姓DSあなたがapp.jscontactsルートでmoduleIdをもmispelledまし

<require from="bootstrap/css/bootstrap.css"></require>

ことにします。 muduleIdがあります。

+0

これは、2番目のエラーメッセージを「未処理の拒否エラー:必要なCSSファイルの読み込みに失敗しました:bootstrap/css/boostrap.css': – mhutter

+0

に変更しました。 –

+0

実際には正しい解決策です。なぜなら、OPのように、私の必要な指示にも誤植があったからです! 'h.load'エラーは重要ではありません。 – mhutter

0

でも、ここにいない方がいいと思うと、たとえイタリア語であっても、私のcursesから怖がってしまうでしょう... 本当にどうやってそれが可能かわかりません。私はもう一度やり直して、全部のものを書き換えました....

とにかく、まずはありがとうございます。私は馬鹿のように感じる。

モジュールのタイプミスを修正し、requireステートメントを推奨どおりに変更しました。今、ページがレンダリングされますが、ブートストラップにJqueryが必要であることを示すエラーメッセージが表示されます。私はすでにここ

は私も

<require from="node_modules/jquery/dist/jquery.js"></require> 

を追加しようとしたが動作しませんscreenshot

です...私は困惑だ、NPM経由でのjQueryを設置し、そう。

アイデア?

なぜ、私はrequireステートメントから "../node_modules/"を削除しなければならなかったのですか? node_moduleディレクトリからブートストラップをロードしませんか?

+0

requireのパスに 'node_modules'を追加しないでください。それは元々の問題の一部でしたが、ここでもう一度やっています。実際には –

+0

です。申し訳ありませんが、require要素を使用してJavaScriptを読み込まないでください。 JavaScriptファイルに 'import'文を使ってJavaScriptを読み込みます。私は上に移動する前にチュートリアルを再読することをお勧めします。 –

+0

あなたが 'aurelia.json'の中でローダーに教えたパスbcにnode_modulesを置かないと、' bootstrap \ ... 'と表示されたとき' node_modules \ bootstrap \ ... 'から読み込まなければなりません。 –

0

aurelia.jsonファイルは、実際にはrequire.js設定ファイルです。このような

{ 
    "name": "bootstrap", 
    "path": "../node_modules/bootstrap/dist", 
    "main": "js/bootstrap.min", 
    "deps": [ 
    "jquery" 
    ], 
    "resources": [ 
    "css/bootstrap.min.css" 
    ] 
} 

作品:これら二つの情報は、基本的になく、見てどのようなドキュメント、このようなrequire.js依存性を知るために十分であるべきリソースがモジュール名+リソース(!リソースが定義された拡張を必要とする)としてrequire'dあり、すなわち、 <require from="bootstrap/css/bootstrap.min.css"></require>、javascriptファイルは<require from="bootstrap"></require>で必要です。上で定義したmainファイル、つまり<require from="bootstrap/some_path_to_jsfile_without_ext"></require>を必要とするモジュール名、つまり。モジュール名+上に定義したpathに関連するファイルを必要とするファイルへの相対パス。

免責事項:私は新しいWeb開発者であり、Aureliaを開始しました。

関連する問題