Я согласен, это несколько недоумение в первую, чтобы получить Angular2 и работает в визуальной среде студии Asp.net 5. Я помещал файлы машинописных файлов, связанные с моим приложением Angular2, в папку в корне под названием App (столица «A»), а затем использовать gulp для перевода в javascript в «приложение» (маленькое «a») на «./wwwroot /приложение". Tsconfig.JSON-файл, кажется, функционирует нормально в папке App и выглядит следующим образом:
{
"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"
]
}
Мой глоток задача выглядит следующим образом (обратите внимание, что я также необходим скопировать любой связанный с видом HTML и JSON файлы в папку приложения а):
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'));
});
Теперь, когда я запустить задачу глотка компиляции: TS моя приложения папки получает все соответствующие активы.
Теперь я понимаю, что вы, вероятно, не хотите слышать о еще одном ящике, но я рекомендую вам рассмотреть возможность использования JSPM. JSPM, созданный той же командой, которая построила system.js, действительно превосходит ваше приложение Angular2 для производства. JSPM требует, чтобы у вас есть файл config.json в корневом каталоге и мой (настроен сказать JSPM, где зависимости angular2 Dev есть) выглядит следующим образом:
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]"
}
}
});
Я использую Глоток-JSPM выполнить группирование в на самодостаточный файл: расслоение плотной
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/"));
});
Затем в файл index.html у вас есть один хорошая ссылка аккуратного сценария:
<script src="~/app-build/[email protected]"> </script>
Когда я строй для производства я изменить variab BundleVersion le в качестве кэша.
Привет, я сталкиваюсь с почти такими же проблемами сейчас. Вы нашли ответы/учебник еще? Я в основном интересуюсь вашей точкой 3 + 4. Я был бы благодарен за любую помощь :) –
Да, у меня есть второй package.json в моем wwwroot с зависимостями npm для интерфейса. Это отлично работает (вы должны исключить файл из VS, иначе VS станет очень медленным). Для связывания я использую gulp-browserify. Это работает очень хорошо. – SebastianStehle
Спасибо, это мне очень помогло! Тем временем я нашел еще одну интересную должность: http://tattoocoder.azurewebsites.net/angular2-aspnet5-spa-template/. –