Zgadzam się, że jest nieco zbyt skomplikowana najpierw dostać Angular2 uruchomiony w Visual Studio Asp.net 5 środowiska. Umieściłem pliki maszynopisu skojarzone z moją aplikacją Angular2 w folderze w katalogu głównym o nazwie App (duże "A"), a następnie użyj gulp do przeniesienia do javascript do "aplikacji" (małe "a") w "./wwwroot/app ". Tsconfig.plik json wydaje się działać dobrze w folderze aplikacji i wygląda następująco:
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "system",
"moduleResolution": "node",
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es5",
"outDir": "wwwroot/app/"
},
"exclude": [
"node_modules",
"wwwroot"
]
}
Moim zadaniem łyk wygląda następująco (Zauważ, że również trzeba skopiować żadnych związanych widoki HTML i pliki JSON do folderu aplikacji jak również):
var ts = require("gulp-typescript")
var tsProject = ts.createProject("./App/tsconfig.json");
gulp.task("compile:ts", function() {
var tsResult = tsProject.src()
.pipe(ts(tsProject));
tsResult.js.pipe(gulp.dest("./wwwroot/app"));
return gulp.src('./App/**/*.{html,json}')
.pipe(gulp.dest('./wwwroot/app'));
});
teraz kiedy uruchomić zadanie haustem kompilacji: ts mój aplikacja Folder pobiera wszystkie odpowiednie zasoby.
Teraz zdaję sobie sprawę, że prawdopodobnie nie chcesz słyszeć o kolejnym menedżerze pakietów, ale polecam rozważyć użycie JSPM. Zbudowany przez ten sam zespół, który zbudował system.js, JSPM naprawdę przoduje w łączeniu aplikacji Angular2 do produkcji. JSPM wymaga, że masz plik config.json w katalogu głównym i górnicze (skonfigurowany powiedzieć JSPM gdzie są zależnościami angular2 dev) przedstawia się następująco:
System.config({
baseURL: "/",
defaultJSExtensions: true,
transpiler: "typescript",
paths: {
"npm:*": "jspm_packages/npm/*",
"github:*": "jspm_packages/github/*",
"node_modules*": "node_modules/*"
},
packages: {
"app": {
"defaultExtension": "js"
}
},
map: {
"angular2": "node_modules/angular2",
"bootstrap": "github:twbs/[email protected]",
"jquery": "github:components/[email protected]",
"rxjs": "node_modules/rxjs",
"ts": "github:frankwallis/[email protected]",
"typescript": "npm:[email protected]",
"github:frankwallis/[email protected]": {
"typescript": "npm:[email protected]"
},
"github:twbs/[email protected]": {
"jquery": "github:components/[email protected]"
}
}
});
I użyć haustem-jspm wykonać pakowanie w wiązki w na samowystarczalny js pliku:
var gulp_jspm = require("gulp-jspm");
gulp.task("jspm_bundle", ["compile:ts"], function() {
return gulp.src("./wwwroot/app/bootApp.js")
.pipe(gulp_jspm({ selfExecutingBundle: true }))
.pipe(gulp.dest("./wwwroot/app-build/"));
});
następnie do pliku index.html masz jeden piękny odniesienie schludny skrypt:
<script src="~/app-build/[email protected]"> </script>
Kiedy budować dla produkcji zmienić variab BundleVersion le jako narzędzie do pomijania pamięci podręcznej.
Cześć, mam teraz prawie te same problemy. Czy znalazłeś już odpowiedzi/samouczek? Najczęściej interesuję się twoim punktem 3 + 4. Byłbym wdzięczny za każdą pomoc :) –
Tak, mam drugi pakiet.json w moim wwwroot z zależnościami npm dla frontendu. Działa to dobrze (musisz wykluczyć plik z VS, w przeciwnym razie VS staje się naprawdę wolny). Do grupowania używam gulp-browserify. Działa to naprawdę dobrze. – SebastianStehle
Dziękuję, to mi bardzo pomogło! W międzyczasie znalazłem inny interesujący post: http://tattoocoder.azurewebsites.net/angular2-aspnet5-spa-template/. –