2016-09-18 18 views
5

byłem po tutorialu intruduction na Webpack kątowego 2: https://angular.io/docs/ts/latest/guide/webpack.htmlangular2-template-ładowarka nie inline szablon składnik

Po zakończeniu wszystkich etapów Otrzymuję błąd 404 podczas próby załadowania szablonu aplikacji składnik.

Samouczek wyraźnie stwierdza, że ​​pliki app.component.html i app.component.css powinny być w locie w locie przez program ładujący angular2-template, ale nie są, ponieważ przeglądarka próbuje zażądać ich przez XHR.

Kodeks app.compnent.ts z samouczka:

import { Component } from '@angular/core'; 
import '../../public/css/styles.css'; 
@Component({ 
    selector: 'my-app', 
    templateUrl: 'app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { } 

enter image description here

Działa gdybym określić ścieżkę szablon względem ścieżki bazowej, ale to nie jest właściwe podejście.

import { Component } from '@angular/core'; 
import '../../public/css/styles.css'; 
@Component({ 
    selector: 'my-app', 
    templateUrl: './src/app/app.component.html', 
    styleUrls: ['./src/app/app.component.css'] 
}) 
export class AppComponent { } 

Czy ktoś ma pomysł, dlaczego tak się dzieje, i czy każdy może wykonać samouczek z działającym rozwiązaniem?

+0

Zobacz również http://stackoverflow.com/questions/39503805/zone-js344-unhandled-promise-rejection-failed-to-load-app-template-html-in-ang/39504168#39504168 – yurzui

+0

Dzięki, I próbowałem dodawać moduleId: module.id i to nie działało, szablon nadal nie został znaleziony, musiałem również wywołać metodę module.id.toString() w celu uniknięcia błędów z metodą split jest niezdefiniowana. Ale moim największym problemem jest to, że nie jest wspomniany w tutorialu, a także dodaje dodatkowej złożoności i kodu. –

+0

Otrzymałem ten sam błąd. Dla mnie problem polegał na tym, że mój IDE automatycznie przenosił mój maszynopis do plików JS, co zakłócało moją kompilację. Usunąłem pliki JS i wszystko działało dobrze. – Irving

Odpowiedz

9

Upewnij się, że pakiet internetowy wykonuje proces kompilacji maszynopisu. Miałem ten sam problem, a problem polegał na tym, że Visual Studio kompilowało moje pliki ts przy składowaniu, a ponieważ WebPack jest skonfigurowany do obsługi plików .js i .ts, to ładowarki próbowały uzyskać zastosowanie do już skompilowanych plików js źródłowych plików ts.

Więc Podsumowując:

  1. Upewnij się, że nie masz pliki ts już skompilowany w katalogu .
  2. Zainstaluj maszynopis w lokalnym module node_modules projektu.
  3. Skonfiguruj webpack zgodnie z tutorialem kątowym.
  4. Uruchom pakiet z wiersza poleceń w katalogu, w którym znajduje się plik webpack.config.js . Gwarantuje to, że pakiet WWW JEST ONE wykonuje kompilację maszynopisu, a tym samym pliki ts wchodzą w skład potoku .

To powinno teraz zadziałać.

+1

To było to - WebStorm robił dla mnie transpozycję, więc interweniował w kompilacji WebPack. Dzięki! –

+0

To też mnie. Kilka dni temu otworzył mój projekt w VS2015, a skompilowane pliki .js były ładowane zamiast świeżej kompilacji .ts. Dzięki za rozwiązanie. –

+0

Lifesaver, straciłem dużo czasu na tym jednym – rashleighp