本文介绍了.Net Core + Angular2 环境搭建,具体如下:
环境搭建:
1)node.js版本>5.0,NPM版本>3.0,TypeScript版本>2.0(全装最新版就好了)
2)安装NTVS 1.2(node tools for vs),TSVS dev 1.4(TS for VS)
3)构建package.json,tsconfig.json,gulp.js文件
1、package.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
{ "name" : "template.angular2" , "version" : "1.0.0" , "licenses" : [ { "type" : "MIT" , "url" : "https://github.com/angular/angular.io/blob/master/LICENSE" } ], "dependencies" : { "@angular/common" : "~2.1.1" , "@angular/compiler" : "~2.1.1" , "@angular/core" : "~2.1.1" , "@angular/forms" : "~2.1.1" , "@angular/http" : "~2.1.1" , "@angular/platform-browser" : "~2.1.1" , "@angular/platform-browser-dynamic" : "~2.1.1" , "@angular/router" : "~3.1.1" , "@angular/upgrade" : "~2.1.1" , "core-js" : "^2.4.1" , "reflect-metadata" : "^0.1.8" , "rxjs" : "5.0.0-beta.12" , "systemjs" : "0.19.39" , "zone.js" : "^0.6.25" }, "devDependencies" : { "@types/core-js" : "^0.9.34" , "@types/node" : "^6.0.45" , "gulp" : "^3.9.1" , "del" : "^2.2.2" } } |
2、tsconfig.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
{ "compilerOptions" : { "target" : "es5" , "module" : "commonjs" , "moduleResolution" : "node" , "sourceMap" : true , //需要这个才能使用注释器 "emitDecoratorMetadata" : true , "experimentalDecorators" : true , "removeComments" : false , "noImplicitAny" : false }, "compileOnSave" : true } |
3、gulp.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
var gulp = require( 'gulp' ); var del = require( 'del' ); var paths = { angularPatch: [ "node_modules/core-js*/**/*" , "node_modules/zone.js*/**/*" , "node_modules/reflect-metadata*/*.js" , "node_modules/reflect-metadata*/*.map" , "node_modules/systemjs*/dist*/*.js" , "node_modules/systemjs*/dist*/*.map" ], angularSrc: [ "node_modules/@angular/core/bundles/core.umd.js" , "node_modules/@angular/common/bundles/common.umd.js" , "node_modules/@angular/compiler/bundles/compiler.umd.js" , "node_modules/@angular/platform-browser/bundles/platform-browser.umd.js" , "node_modules/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js" , "node_modules/@angular/http/bundles/http.umd.js" , "node_modules/@angular/router/bundles/router.umd.js" , "node_modules/@angular/forms/bundles/forms.umd.js" , "node_modules/@angular/upgrade/bundles/upgrade.umd.js" //"node_modules/", ], rxjsSrc: "node_modules/rxjs/**/*" , TSSrc: "Scripts/**/*.js" , TSTarget: "wwwroot/js" , Tartget: "wwwroot/lib" } //手工构建一次 gulp.task( "copyangularfiles" , function () { //gulp.src(paths.angularSrc).pipe(gulp.dest(paths.Tartget)); paths.angularSrc.forEach( function (path) { var tpath = path.replace( "node_modules" , paths.Tartget).split( '/' ); gulp.src(path).pipe(gulp.dest(tpath.slice(0, tpath.length - 1).join( '/' ))); }); gulp.src(paths.rxjsSrc).pipe(gulp.dest(paths.Tartget + "/rxjs" )); gulp.src(paths.angularPatch).pipe(gulp.dest(paths.Tartget + "/patch" )); }); //加入任务->绑定->生成前 gulp.task( "copytsfiles" , function () { gulp.src(paths.TSSrc).pipe(gulp.dest(paths.TSTarget)); }) gulp.task( 'default' , [ 'copytsfiles' ], function () { // place code for your default task here }); |
4)在项目根目录建立 Scripts 文件夹
5)在wwwroot文件夹建立systemjs.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/** * System configuration for Angular samples * Adjust as necessary for your application needs. */ ( function (global) { System.config({ paths: { // paths serve as alias 'npm:' : 'lib/' }, // map tells the System loader where to look for things map: { // our app is within the app folder app: 'js' , // angular bundles '@angular/core' : 'npm:@angular/core/bundles/core.umd.js' , '@angular/common' : 'npm:@angular/common/bundles/common.umd.js' , '@angular/compiler' : 'npm:@angular/compiler/bundles/compiler.umd.js' , '@angular/platform-browser' : 'npm:@angular/platform-browser/bundles/platform-browser.umd.js' , '@angular/platform-browser-dynamic' : 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js' , '@angular/http' : 'npm:@angular/http/bundles/http.umd.js' , '@angular/router' : 'npm:@angular/router/bundles/router.umd.js' , '@angular/forms' : 'npm:@angular/forms/bundles/forms.umd.js' , '@angular/upgrade' : 'npm:@angular/upgrade/bundles/upgrade.umd.js' , // other libraries 'rxjs' : 'npm:rxjs' }, // packages tells the System loader how to load when no filename and/or no extension packages: { app: { main: './main.js' , defaultExtension: 'js' }, rxjs: { defaultExtension: 'js' } } }); })( this ); |
6)修改Views/Shared/_Layout.cshtml,删除对site.js的引用
7)修改Views/Home/Index.cshtml,增加/构建@section scripts 脚本段
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
@section scripts{ <!-- 1. Load libraries --> <!-- Polyfill(s) for older browsers --> <script src= "~/lib/patch/core-js/client/shim.min.js" ></script> <script src= "~/lib/patch/zone.js/dist/zone.js" ></script> <script src= "~/lib/patch/reflect-metadata/Reflect.js" ></script> <script src= "~/lib/patch/systemjs/dist/system.src.js" ></script> <!-- 2. Configure SystemJS --> <script src= "systemjs.config.js" ></script> <script> System.import( 'app' ). catch ( function (err) { console.error(err); }); </script> } |
8)环境搭建完成,程序入口文件 wwwroot/js/main.js(Scripts/main.ts)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/xiaoxiaoii/p/6062123.html