Angular2开发基础之TSC编译
本文首发简书 http://www.jianshu.com/p/b12ccfdfb0c1,欢迎转载,但请注明转载链接,谢谢! 蓝图从接触ng2开始就有个想法, 要把学到的东西快速实践,做个有逼格项目。直到看到 破狼博客中 提到的 rebirth, 一个基于ng2的前端项目, 就开始躁动了,想捣鼓成一个完整的项目, 作为自己的在线博客系统。 对于只有移动端经验的我, 要在短时间内熟练使用前端的技术框架以及工具链,还是有不少东西需要学习, 幸好有强大的社区群体。 目标
环境需要说明,本教程仅是Windows的实操,Linux,Mac环境,会有不同。 效果展示其中的各种json配置文件,ts文件,dist,node_modules, index.html后续会有说明。 实操读者最好先仔细阅读 ng2 快速起步 文章,对照上述内容,完成自己的 step 1 : 创建并配置项目使用gitBash 进入工作目录 mkdir ng2-starter-webpack
cd ng2-starter-webpack
接下来需要创建package.json等配置文件。先看下这些配置文件中文官网的说明。
package.json该 添加ng2相关依赖库注意,本文并不是按照 快速起步 样式来写。当我实操 快速起步 过程中,仅仅是按照文档来做,至于为什么,不清楚, 但当我看 【破狼】rebirth时候,发现对ng2的相关配置不熟悉,无法更好的工作。回头再来按照自己的理解梳理一遍。 先把package.json中的一些内容删除,暂时没有使用: "main": "index.js","scripts": { "test": "echo "Error: no test specified" && exit 1"},
添加 ng2相关依赖库,可以使用 npm来安装: 1. npm install xxxpackage --save-dev
2. npm install xxxpackage --save
3. npm install xxxpackage -g
其中, 当然,我这里偷懒,直接copy 快速起步 中的ng2配置。 "dependencies": {
"@angular/common": "~2.0.1","@angular/compiler": "~2.0.1","@angular/core": "~2.0.1","@angular/forms": "~2.0.1","@angular/http": "~2.0.1","@angular/platform-browser": "~2.0.1","@angular/platform-browser-dynamic": "~2.0.1","@angular/router": "~3.0.1","@angular/upgrade": "~2.0.1","angular-in-memory-web-api": "~0.1.1","bootstrap": "^3.3.7","core-js": "^2.4.1","reflect-metadata": "^0.1.8","rxjs": "5.0.0-beta.12","zone.js": "^0.6.25"
}
使用 npm install安装ng2依赖库。 注意网络的畅通,建议将npm安装源修改为国内淘宝的,方法百度。 添加TypeScript库ng2首选使用ts开发,npm安装ts,提示大家使用全局和局部安装方法,好处是全局使用。 npm install typescript -g
npm install -g typescript@2.0.6
npm install typescript --save-dev
其中的 1. $(npm bin)/tsc -v
2. tsc -v
step 2 创建应用和组件mkdir src
cd src
mkdir app
分别按照 快速起步 中步骤2, 步骤3添加内容。其中有具体的描述作用。 @app.module.ts import { NgModule } from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {AppComponent} from './app.component';
@NgModule({
imports: [BrowserModule],declarations: [AppComponent],bootstrap: [AppComponent]
})
export class AppModule{}
@app.component.ts import {Component} from '@angular/core';
@Component({
selector: 'my-app',template: '<h1>My App</h1>'
})
export class AppComponent{}
step 3 启动应用在app同级目录创建 文件@main.ts import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);
至于为什么要添加这个启动main.ts,中文官方文档说明如下:
step 4 宿主页面index.html注意,这里跟快速起步 中的 【步骤 5 :定义该应用的宿主页面】有区别,不要参考那里面的内容,因为有 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Angular 2 starter webpack</title>
</head>
<body>
<my-app>Loading...</my-app>
</body>
</html>
现在运行,浏览器没有 My App 效果, 仅仅是 Loading… 字样! step 5 TSC编译运行ng2这里已经跟 快速起步 不一样了,原因是,我们需要稍微深入一点TS编译命令, 有助于理解package.json中 添加tsconfig.json为了更好的设置tsc编译所需的参数, 添加tsconfig.json文件。 {
"compilerOptions":{ "target": "es5","experimentalDecorators": true,"emitDecoratorMetadata": true } }
其中的 参数说明,请参考: 编译选项 在实际开发中,需要将src 以及编译生成的东西分开,目标目录可以 是 typings.json刚才编译tsc中,会发现有一些 error出现, 如: node_modules/@angular/platform-browser/src/facade/collection.d.ts(10,23): error TS2304: Cannot find name 'Map'.
node_modules/@angular/platform-browser/src/facade/collection.d.ts(11,25): error TS2304: Cannot find name 'Map'.
node_modules/rxjs/Observable.d.ts(10,66): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/Observable.d.ts(66,60): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/Observable.d.ts(66,70): error TS2304: Cannot find name 'Promise'.
其中类似 解决该问题,还需要其他的手段了。注意,在前面,已经引入了 npm install --save-dev typings
$(npm bin)/typings -v
$(npm bin)/typings search core-js
$(npm bin)/typings install --global --save dt~core-js
完成上述 几个步骤,就可以看到 根目录多了 文件夹 再次执行 小结写到这里 tsc编译ng2以及会出现的问题都解决了,但是 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- AngularJS Google Oauth 400错误redirect_uri的参数值无效:
- bash – 如何遍历Unix Shell中字符串中的每个字母
- 在安装npm后,在bash中找不到快速命令
- angularjs – 发送请求Body on $resource
- MyEclispe基于JAX-WS的WebService服务端客户端简单实现示例
- 解决bootstrap下拉菜单点击立即隐藏bug的方法
- scala – Akka – 如何检查邮件在收件箱中的时长?
- 使用邮件监控ssh登陆用户shell脚本
- 具有渐进增强功能的混合页面/单页网络应用程序(Angularjs,E
- WebService学习总结(一)——WebService的相关概念