Angular2.x与Angular1.x完全不同,Angular2.x是不兼容Angular1.x的,所在在框架的构造上,它们是完全不同的。在Angular2.x中,因为其是基于ES6来开发的,所以会有很多第三方依赖。由于很多浏览器还不支持ES6,所以Angular2引入了很多polyfill或者shim, 导致我们引入了第三方依赖。

官方的说法,它是基于数据流的构建系统(streaming build system),主要用来让自动化和增强你的工作流程(Automate and enhance your workflow)。

1.安装 node v6.x.x      npm 3.x.x    gulp    有兴趣的可以安装typescript

gulp的安装    npm install -g 全局安装环境

gulp 教程:https://www.w3ctech.com/topic/134
中文网:http://www.gulpjs.com.cn/

2.新建项目文件夹(英文)

3.在github上clone相关文件,并放入相关配置项
  地址:https://github.com/Jasonwang911/angular2

4.package.json文件:用来标记项目所需的npm依赖包

这是一个gulp的工作流,在gulp中我们部署的函数都是由gulp.task来执行的,这个文件的主要做的工作是    

1.对angular2源码进行转换,将es6代码转换为es5代码,然后合并成angular2.js,放入dest/lib目录
2.将angular2的第三方依赖放入dest/lib目录
3.自动监测用户写的代码,当文件发生修改时,自动将其编译为es5代码,然后放入dest目录
4.开启一个本地服务器,让用户访问http://localhost:3456/ 就可以看到页面效果
5.删除dest目录

如果想了解gulp可以翻下我之前的博客,或者直接gulp的中文站

'use strict';
var gulp = require('gulp'),
del = require('del'),
plumber = require('gulp-plumber'),
rename = require('gulp-rename'),
traceur = require('gulp-traceur');
var connect = require('gulp-connect'),
open = require('gulp-open'),
port = ;
var PATHS = {
src: {
js: 'src/**/*.js',
html: 'src/**/*.html'
},
lib: [
'node_modules/gulp-traceur/node_modules/traceur/bin/traceur-runtime.js',
'node_modules/es6-module-loader/dist/es6-module-loader-sans-promises.src.js',
'node_modules/systemjs/lib/extension-register.js',
'node_modules/angular2/node_modules/zone.js/dist/zone.js',
'node_modules/angular2/node_modules/zone.js/dist/long-stack-trace-zone.js',
'node_modules/reflect-metadata/Reflect.js',
'node_modules/reflect-metadata/Reflect.js.map',
]
};
gulp.task('watch', function() {
gulp.watch(PATHS.src.js, ['js']);
gulp.watch(PATHS.src.html, ['html']);
});
gulp.task('js', function() {
return gulp.src(PATHS.src.js)
.pipe(rename({
extname: ''
}))
.pipe(plumber())
.pipe(traceur({
modules: 'instantiate',
moduleName: true,
annotations: true,
types: true,
memberVariables: true
}))
.pipe(rename({
extname: '.js'
}))
.pipe(gulp.dest('dist'));
});
gulp.task('html', function() {
return gulp.src(PATHS.src.html)
.pipe(gulp.dest('dist'));
});
gulp.task('angular2', function() {
var buildConfig = {
paths: {
"angular2/*": "node_modules/angular2/es6/prod/*.es6",
"rx": "node_modules/angular2/node_modules/rx/dist/rx.js"
},
meta: {
'rx': {
format: 'cjs'
}
}
};
var Builder = require('systemjs-builder');
var builder = new Builder(buildConfig);
return builder.build('angular2/angular2', 'dist/lib/angular2.js', {});
});
gulp.task('libs', ['angular2'], function() {
var size = require('gulp-size');
return gulp.src(PATHS.lib)
.pipe(size({
showFiles: true,
gzip: true
}))
.pipe(gulp.dest('dist/lib'));
});
gulp.task('connect', function() {
connect.server({
root: __dirname + '/dist',
port: port,
livereload: true
});
});
gulp.task('open', function() {
var options = {
url: 'http://localhost:' + port,
};
gulp.src('./index.html')
.pipe(open('', options));
});
gulp.task('build', ['js', 'html'])
gulp.task('default', ['build', 'libs']);
gulp.task('serve', ['connect', 'open']);
gulp.task('clean', function(done) {
del(['dist'], done);
});

5.tyconfig.json文件:定义了typescript编译器如何从项目源文件生成javascript代码

{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
}
}

6.typings.json文件:为那些 TypeScript 编译器无法识别的库提供了额外的定义文件。

{
"globalDependencies": {
"core-js": "registry:dt/core-js#0.0.0+20160725163759",
"jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
"node": "registry:dt/node#6.0.0+20160909174046"
}
}

7.systemjs.config.js文件:为模块加载器提供了该到哪里查找应用模块的信息,并注册了所有必备的依赖包。它还包括文档中后面的例子需要用到的包。

8.安装package.json中列出的依赖包,这里需要使用nodejs来定义需要使用的angular2版本和所有第三方依赖的版本

  在node命令行中输入 npm install
  如果运行结束没有生成typings目录,则手动安装 npm run typings install

9.定义该应用的宿主页面,根目录下创建index.html

10.编译并运行应用程序   npm start

你会发现浏览器启动了程序,并且编译了app/app.component.ts文件并输出所有相应的ts文件为js文件,在你编辑文件保存后浏览器会自动刷新并会提示相应的错误

angular2环境搭建的更多相关文章

  1. .Net Core + Angular2 环境搭建

    环境搭建: 1)node.js版本>5.0,NPM版本>3.0,TypeScript版本>2.0(全装最新版就好了) 2)安装NTVS 1.2(node tools for vs), ...

  2. 记一次Angular2环境搭建及My First Angular App小demo呈现

    参考连接?不如说是照搬链接.AngularJs官网地址快速起步地址. 对于一个一直只是用jq,偶尔学习点Knockout js,了解一点mvvm结构的前端来说,学习Angular2还是有点困难的.好了 ...

  3. Ionic2 cordova angular2 打包到Android apk环境搭建

    一.前言 前段时间,公司有个APP项目需要支持不同平台,于是采用了Ionic2 + cordova + angular2,在搭建环境过程中遇到了不少问题,刚好最近有时间整理出来. 二.开发环境搭建 参 ...

  4. webpack+angular2开发环境搭建

    升级版之webpack4 + angular5脚手架demo详见: http://www.cnblogs.com/xudengwei/p/8852257.html 刚搭建完一个webpack+angu ...

  5. Angular2+学习第2篇 cli 环境搭建过程

    Angular-cli是angular团队针对Angular2提供的脚手架,用于环境搭建,运行等:具体参考Angular-cli GitHub Angular的启动过程,需要先回答三个问题: 启动时加 ...

  6. Ionic2开发环境搭建

    关于网络环境:ionic开发环境不需要FQ.我这里没有设置FQ,亲测可行.但是angular2的开发环境搭建,则需要FQ网络,否则很多包会安装失败. 建议大家在搭建开发环境的时候,不要参考百度出来的各 ...

  7. Ionic3开发环境搭建-VS Code

    原文:Ionic3开发环境搭建-VS Code 一.Ionic3在VS Code中的开发环境搭建 1.全局安装Ionic包 npm install -g cordova ionic 使用 ionic ...

  8. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  9. Azure Service Fabric 开发环境搭建

    微服务体系结构是一种将服务器应用程序构建为一组小型服务的方法,每个服务都按自己的进程运行,并通过 HTTP 和 WebSocket 等协议相互通信.每个微服务都在特定的界定上下文(每服务)中实现特定的 ...

随机推荐

  1. 从零开始编写自己的C#框架(16)——Web层后端父类

    本章节讲述的各个类是后端系统的核心之一,涉及到系统安全验证.操作日志记录.页面与按键权限控制.后端页面功能封装等内容,希望学习本系列的朋友认真查看新增的类与函数,这对以后使用本框架进行开发时非常重要. ...

  2. BIRCH聚类算法原理

    在K-Means聚类算法原理中,我们讲到了K-Means和Mini Batch K-Means的聚类原理.这里我们再来看看另外一种常见的聚类算法BIRCH.BIRCH算法比较适合于数据量大,类别数K也 ...

  3. TFS2017持续集成构建

    TFS2017发布已经有几个月了,经过了几天的部署和尝试,TFS2017的功能变化真是挺大的.特别是在构建方面的变化,在产品的向导中已经声明XAML版本控制器和代理已经弃用了,并建议升级原来13和15 ...

  4. 在docker中运行ASP.NET Core Web API应用程序

    本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...

  5. dicom网络通讯入门(1)

    看标准 越看越糊,根本原因:dicom抽象得非常严重,是“专家”弄的.没办法. 又是什么服务类 又是什么sop,相信你把dicom标准看到头大 都不知如何下手. 不就是 socket么 这有何难. 首 ...

  6. Java多线程--让主线程等待子线程执行完毕

    使用Java多线程编程时经常遇到主线程需要等待子线程执行完成以后才能继续执行,那么接下来介绍一种简单的方式使主线程等待. java.util.concurrent.CountDownLatch 使用c ...

  7. 子div设置浮动无法把父div撑开。

    <div class="mainBox"> <div class="leftBox"></div> <div clas ...

  8. 【JS基础】DOM操作

    appendChild() //向节点添加最后一个子节点 createElement() //创建元素节点 createTextNode() //创建文本节点,字符串值

  9. ES6(let 和 const)

    一项新技术的出现肯定是为了解决一些问题,那么ES6的出现主要是解决了哪些问题?它的出现给我们带来了什么便利?当它没有出现的时候,某些问题怎么处理?ES6的方法和以前的方法比较又有什么不同呢?根据提出的 ...

  10. mui scroll和上拉加载/下拉刷新

    mui中 scroll和上拉加载/下拉刷新同时存在会出现两个滚动条 把/*   */ /* //mui页面鼠标拖动代码: mui('.mui-scroll-wrapper').scroll({ dec ...