diff --git a/source/_posts/angular-cli-之初体验.md b/source/_posts/angular-cli-之初体验.md
index 4ec72ed..9769448 100644
--- a/source/_posts/angular-cli-之初体验.md
+++ b/source/_posts/angular-cli-之初体验.md
@@ -1,9 +1,12 @@
---
title: Angular CLI 之初体验
-tags: []
id: '143'
categories:
- - - 分享
+ - 分享
+tags:
+ - Angular
+ - CLI
+ - angular/cli
date: 2017-09-20 17:13:04
---
@@ -11,41 +14,73 @@ date: 2017-09-20 17:13:04
## 配置开发环境
-1. 安装最新版本的node,angular官方要求**node `6.9.x` 和 npm `3.x.x` 以上的版本。** 具体安装请参考 [node官网](http://nodejs.cn/) ,安装过程不再赘述。
+1. 安装最新版本的node,angular官方要求**node `6.9.x` 和 npm `3.x.x` 以上的版本。** 具体安装请参考 [node官网](http://nodejs.cn/) , 安装过程不再赘述。
2. 全局安装 [**Angular CLI**](https://cli.angular.io/)
+
- ```
+
+
+
+```
+
npm install -g @angular/cli
```
+
## 创建新项目
1. 打开终端窗口 运行下列命令来生成一个新项目以及应用的骨架代码:
+
- ```
+
+
+
+```
+
ng new myapp
```
+
+
2. 进入项目目录,并启动服务器。
+
- ```
+
+
+
+```
+
cd myapp
ng serve --open
```
+
+
ng serve命令会启动开发服务器,监听文件变化,并在修改这些文件时重新构建此应用。 使用--open(或-o)参数可以自动打开浏览器并访问http://localhost:4200/。
+
- 
+
+
+
+
+
## 设置代理
1. 我们开发的时候,有时需要对接口做代理,**[Angular CLI](https://cli.angular.io/)**同样给我们提供了设置代理的方式
+
+
首先在项目的根目录下创建一个**proxy.conf.json** 文件
+
- ```
+
+
+
+```
+
{
"/data": {
"target": "http://xxx.xxx.xxx.xxx:8080",
@@ -54,16 +89,28 @@ date: 2017-09-20 17:13:04
}
}
```
+
+
"/data"是接口所包含的字符,target则是代理的ip和端口号
+
+
2. 然后在项目的根目录打开终端,运行下面的指令:
+
- ```
+
+
+
+```
+
ng serve --proxy-config proxy.conf.json
```
+
+
这样代理的设置就完成了。
+
## 样式编译
@@ -71,35 +118,61 @@ date: 2017-09-20 17:13:04
**[Angular CLI](https://cli.angular.io/)** 支持sass、less、stylus等方式编译样式
1. 在创建项目时可以设置编译方式:
+
- ```
+
+
+
+```
+
ng new myapp --style=sass
ng new myapp --style=less
ng new myapp --style=stylus
```
+
+
上面分别是创建项目时设定的样式编译方式:sass、less、stylus
+
+
2. 当然,你也可以在手动修改,在项目根目录下找到 **.angular-cli.json**
+
- ```
+
+
+
+```
+
"defaults": {
"styleExt": "styl",
"component": {}
}
```
+
+
defaults下面的styleExt就是你要设定的编译方式,这里采用了stylus,stylus的后缀为styl,其他的方式设置对应的后缀名。
+
+
然后继续在该文件中找到
+
- ```
+
+
+
+```
+
"styles": [
"styles.styl"
]
```
+
+
全改完了之后,不要忘了把项目**根目录**里的css文件和**src/app**里的css文件也改成相应的后缀
+
## 打包编译后资源引入根目录
@@ -107,8 +180,13 @@ date: 2017-09-20 17:13:04
**[Angular CLI](https://cli.angular.io/)** 打包编译后,引入的资源都是"/"根目录引入,但有时候我们的项目可能并不是存放在域名的根目录,所以这种情况就需要我们设置一下引入资源的根目录了
1. 打开src目录下面的**index.html**文件,在
标签里面有个base标签
+
- ```
+
+
+
+```
+
@@ -122,12 +200,21 @@ date: 2017-09-20 17:13:04
```
+
+
base标签默认是"/"根目录
+
+
2. 然后我们回到整项目的根目录下面找到**package.json**文件,打开文件,找到"scripts",修改"build"的值
+
- ```
+
+
+
+```
+
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
@@ -137,19 +224,35 @@ date: 2017-09-20 17:13:04
"e2e": "ng e2e"
},
```
+
+
然后在命令行中输入
+
- ```
+
+
+
+```
+
npm run build
```
+
+
等待编译完成后,在dist目录下的**index.html**文件中的base标签的值就变成你之前设置的目录了,引入的资源放到正式环境也可以正常访问。
+
+
当然,你也可以不设置**package.json**文件,直接在命令行输入
+
- ```
+
+
+
+```
+
ng build --prod --bh /pages/myapp/
或者
ng build --prod --base-href /pages/myapp/
- ```
\ No newline at end of file
+ ```
diff --git a/source/_posts/browser-sync代理接口在ie8下返回406问题.md b/source/_posts/browser-sync代理接口在ie8下返回406问题.md
index db84d81..235e4cf 100644
--- a/source/_posts/browser-sync代理接口在ie8下返回406问题.md
+++ b/source/_posts/browser-sync代理接口在ie8下返回406问题.md
@@ -1,58 +1,61 @@
---
title: browser-sync代理接口在IE8下返回406问题
-tags: []
id: '64'
categories:
- - - 分享
+ - 分享
+tags:
+ - browser-sync
+ - 代理
+ - IE8
+ - 406
date: 2016-06-28 10:15:34
---
-正常情况下,代理返回的头信息为: HTTP/1.1 200 OK server?? ?Apache-Coyote/1.1 content-type?? ?application/json;charset=UTF-8 transfer-encoding?? ?chunked date?? ?Tue, 28 Jun 2016 02:07:39 GMT connection?? ?close 然而在IE8下面却返回了下面的头信息: HTTP/1.1 406 Not Acceptable server: Apache-Coyote/1.1 set-cookie: JSESSIONID=7F367B9EB53FDC8306D807E0A7BD4201; Path=/; HttpOnly content-type: text/html;charset=utf-8 date: Tue, 28 Jun 2016 02:01:31 GMT connection: close Transfer-Encoding: chunked 通过对比头信息,在代理设置里做了一下判断,在低版本IE浏览器重新设置一下头信息。
-
-```js
+正常情况下,代理返回的头信息为: HTTP/1.1 200 OK server?? ? Apache-Coyote/1.1 content-type?? ?application/json; charset=UTF-8 transfer-encoding?? ?chunked date?? ? Tue, 28 Jun 2016 02:07:39 GMT connection?? ?close 然而在IE8下面却返回了下面的头信息: HTTP/1.1 406 Not Acceptable server: Apache-Coyote/1.1 set-cookie: JSESSIONID=7F367B9EB53FDC8306D807E0A7BD4201; Path=/; HttpOnly content-type: text/html; charset=utf-8 date: Tue, 28 Jun 2016 02:01:31 GMT connection: close Transfer-Encoding: chunked 通过对比头信息,在代理设置里做了一下判断,在低版本IE浏览器重新设置一下头信息。
+``` js
var browserSync = require('browser-sync');
var proxyMiddleware = require('http-proxy-middleware');
var proxy_context = ['/service/web'];
var proxy_option = {
-target: 'http://' + proxyConfig.host + ':' + proxyConfig.port,
-//增加一个错误处理在window 7 ie7,8
-onProxyReq: function(proxyReq, req, res){
-var is4dot0 = false;
-var acceptValue = "";
-var acceptEncodeing = "";
-var rawHeaders = req.rawHeaders;
+ target: 'http://' + proxyConfig.host + ':' + proxyConfig.port,
+ //增加一个错误处理在window 7 ie7,8
+ onProxyReq: function(proxyReq, req, res) {
+ var is4dot0 = false;
+ var acceptValue = "";
+ var acceptEncodeing = "";
+ var rawHeaders = req.rawHeaders;
-rawHeaders.forEach(function(value, index){
-if(value === "Accept"){
-acceptValue = rawHeaders[index+1];
-}
-if(value === "Accept-Encoding"){
-acceptEncodeing = rawHeaders[index+1];
-}
-if(value.indexOf("Mozilla/4.0") === 0){
-is4dot0 = true;
-}
-});
-if(is4dot0){
-proxyReq.setHeader("Accept", acceptValue);
-proxyReq.setHeader("Accept-Encoding", acceptEncodeing);
-}
-}
+ rawHeaders.forEach(function(value, index) {
+ if (value === "Accept") {
+ acceptValue = rawHeaders[index + 1];
+ }
+ if (value === "Accept-Encoding") {
+ acceptEncodeing = rawHeaders[index + 1];
+ }
+ if (value.indexOf("Mozilla/4.0") === 0) {
+ is4dot0 = true;
+ }
+ });
+ if (is4dot0) {
+ proxyReq.setHeader("Accept", acceptValue);
+ proxyReq.setHeader("Accept-Encoding", acceptEncodeing);
+ }
+ }
};
var proxy = proxyMiddleware(proxy_context, proxy_option);
browserSync({
-host: 'local.xxx.com',
-port: 3000,
-open: 'external',
-browser: 'google chrome',
-ghostMode: false, // 每个页面的镜像独立,不相互影响
-server: {
-baseDir: "build",
-middleware: [proxy]
-}
+ host: 'local.xxx.com',
+ port: 3000,
+ open: 'external',
+ browser: 'google chrome',
+ ghostMode: false, // 每个页面的镜像独立,不相互影响
+ server: {
+ baseDir: "build",
+ middleware: [proxy]
+ }
});
-```
\ No newline at end of file
+```
diff --git a/source/_posts/egret-练手-《围住神经猫》.md b/source/_posts/egret-练手-《围住神经猫》.md
index 70d3bdc..db6e468 100644
--- a/source/_posts/egret-练手-《围住神经猫》.md
+++ b/source/_posts/egret-练手-《围住神经猫》.md
@@ -1,15 +1,18 @@
---
title: egret 练手 《围住神经猫》
-tags: []
id: '115'
categories:
- - - 分享
+ - 分享
+tags:
+ - egret
+ - 围住神经猫
+ - 小游戏
date: 2017-09-04 11:42:10
---
-Egret引擎是一个开源免费的游戏框架,用于构建二维游戏、演示程序和其他图形界面交互应用等。Egret使用TypeScript脚本语言开发。当游戏完成最终的打包后,可以将程序转换为HTML5游戏。实现跨平台特性。 Egret不仅仅是一个基于HTML5技术的游戏引擎,我们的产品线中除了Egret引擎还提供了很多辅助游戏开发的工具。准确的来说,Egret是一套游戏开发的解决方案。你可以使用Egret引擎来帮助你开发HTML5游戏,并运行在手机和PC端的浏览器中,同时也你可以使用Egret提供的相关工具搭建你自己的游戏开发工作流。 Egret的语法与ActionScript 3.0 一致,如果对as3.0熟悉的童鞋能很快上手。 果然有兴趣的童鞋可以直接去Egret的官网,有详细的文档资料 [白鹭引擎官网](https://www.egret.com/) 最近学习Egret,看了一些文档后,决定找个简单的项目自己练一下手,《围住神经猫》应该是个很好的选择。 先贴上完成的作品 [Demo](https://demo.dengtongyu.com/pages/nervcat/) **1.新建项目** 打开EgretWing --> 文件 --> 新建项目 --> Egret游戏项目 完成后打开 src 下的 Main.ts,改文件就是整个项目的入口文件,里面还有一些已经写好的方法,方便你后面调用。 具体请参考 [传送门](http://edn.egret.com/cn/article/index/id/579) 里面介绍得很详细 **2.加载进度条** 新建游戏项目后,默认的加载进度比较简陋,我们需要美化一下。 打开 src\\LoadingUI.ts 文件,这个就是加载进度条的类。
+Egret引擎是一个开源免费的游戏框架,用于构建二维游戏、演示程序和其他图形界面交互应用等。Egret使用TypeScript脚本语言开发。当游戏完成最终的打包后,可以将程序转换为HTML5游戏。实现跨平台特性。 Egret不仅仅是一个基于HTML5技术的游戏引擎,我们的产品线中除了Egret引擎还提供了很多辅助游戏开发的工具。准确的来说,Egret是一套游戏开发的解决方案。你可以使用Egret引擎来帮助你开发HTML5游戏,并运行在手机和PC端的浏览器中,同时也你可以使用Egret提供的相关工具搭建你自己的游戏开发工作流。 Egret的语法与ActionScript 3.0 一致,如果对as3.0熟悉的童鞋能很快上手。 果然有兴趣的童鞋可以直接去Egret的官网,有详细的文档资料 [白鹭引擎官网](https://www.egret.com/) 最近学习Egret,看了一些文档后,决定找个简单的项目自己练一下手,《围住神经猫》应该是个很好的选择。 先贴上完成的作品 [Demo](https://demo.dengtongyu.com/pages/nervcat/) **1. 新建项目** 打开EgretWing --> 文件 --> 新建项目 --> Egret游戏项目 完成后打开 src 下的 Main.ts,改文件就是整个项目的入口文件,里面还有一些已经写好的方法,方便你后面调用。 具体请参考 [传送门](http://edn.egret.com/cn/article/index/id/579) 里面介绍得很详细 **2. 加载进度条** 新建游戏项目后,默认的加载进度比较简陋,我们需要美化一下。 打开 src\\LoadingUI.ts 文件,这个就是加载进度条的类。
-```
+```
class LoadingUI extends egret.Sprite {
@@ -37,7 +40,7 @@ class LoadingUI extends egret.Sprite {
从代码可以看出,进度条仅仅是用文字展示了加载进度,我们来加个进度条UI美化一下。
-```
+```
class LoadingUI extends egret.Sprite {
@@ -81,9 +84,13 @@ class LoadingUI extends egret.Sprite {
}
```
-效果如图:  **3.开始画面** 进度条弄好之后,我们开始做游戏开始的画面。如图:  可以看出,开始画面由背景、网格地图和开始按钮的图片组成,这个实现起来很简单。
+效果如图:
-```
+ **3. 开始画面** 进度条弄好之后,我们开始做游戏开始的画面。如图: 
+
+ 可以看出,开始画面由背景、网格地图和开始按钮的图片组成,这个实现起来很简单。
+
+```
private mapGroup:eui.Group;//地图容器
private circleArray:Array