好久没写东西了,去年用了angular2的RC版本和ionic2写了一个项目,因为开发周期和有些版本不稳定,所以一直没有升级,ng2新版本引用Aot打包,听说优化还不错,现在尝试升级ionic2、angular2到最新版本,在此分享经验。
  1. 全局升级ionic、cordova(因为每个版本的初始化工程包引用的插件不一样,本人升级后,新建工程出现一些错误。如果你新建工程出现错误,你可以卸载后重新安装)
//解决安装后新建出现的bug
npm uninstall -g ionic
npm uninstall -g corodva npm install -g ionic cordova
  1. 调整文件路径结构(个人更倾向于官网的代码书写结构,因为在开发中有一些方便调试优化 ,新版本和旧版本的路径差距很大, 新版的文件结构和老版有一定的修改,我在这里指出:
     2.1 用ionic2工具新建一个工程,新工程名字最好和之前一样
     2.2 因为本人用于android,android版本太多了,所以本人用了crosswalk,保证使用最新webview,保证统一的兼容性,因为是新工程本人顺便升级一下所有cordova插件包,感兴趣的话可以看下
ionic plugin add cordova-plugin-crosswalk-webview
     2.3 安装所有你需要的cordova插件后,初始化android基本工程
ionic run android
     2.4 修改一些启动方法,因为ng2后面版本引用@NgModule,在此简单给个例子
@NgModule({
declarations: [
MyApp,
TabsPage,
LoginPage
],
imports: [
IonicModule.forRoot(MyApp, {
backButtonIcon: 'arrow-back',
iconMode: 'ios',
pageTransition: 'ios',
tabbarPlacement: 'bottom',
backButtonText: '返回'
}, {}
)],
bootstrap: [IonicApp],
entryComponents: [
LoginPage,
MyApp,
TabsPage
],
providers: [UserService,AppConfigService,{provide: ErrorHandler, useClass: IonicErrorHandler}]
})
     2.5 有些组件的属性写法改了一些例如button按钮
<button ion-button (click)="loginFn()"  color="danger" block default >
立即登录
</button>
     2.6 html模版的引用也发生一些变化,之前是全路径,现在简写路径
@Component({
templateUrl: 'login.html',
selector: 'login-page',
})
     2.7 之前ionic2开发,打包工具用的是gulp(配置文件很方便改动、添加自己东西),现在改用ionic-app-scripts,一个插件包,提供的修改配置参数不是特别的多,可以添加简单的配置参数,修改创建相应的config配置文件,具体详细配置可以参考github这个插件包详细说明。https://github.com/driftyco/ionic-app-scripts
在此提供自动生成没有出现的命令,还是很有用的
  "scripts": {
"release": "ionic-app-scripts build --prod", //调用angular2提供的AOT,加快浏览器客户端编译,不过文件也许变大,可以使用服务器zigb压缩
}  
     2.8 ionic2提供的开发环境反向代理一直有问题,我查看打包源码简单的改了一下
//找到 node_modules//@ionic/app-scripts/dist/dev-server/http-server.js文件
//搜索proxyMiddleware,用http-proxy-middleware替换proxy-middleware
var proxyMiddleware = require('http-proxy-middleware'); //搜索proxy.proxyNoAgent,替换下面的语句
47 //if (proxy.proxyNoAgent) {
48 // opts.agent = false;
49 //}
50 //opts.rejectUnauthorized = !(proxy.rejectUnauthorized === false);
51 app.use(proxy.path, proxyMiddleware({
52 target: proxy.proxyUrl,
53 changeOrigin: true
54 }));
55 //app.use(proxy.path, proxyMiddleware(opts));
详细修改方法我一发布github网站,https://github.com/driftyco/ionic-app-scripts/issues/790,可以参考
 
     2.9 因为文件的路径可能时常发生改变,所以图片在scss路径引用最好使用变量函数
@mixin addAppImage($imagePath) {
background-image: url("../images/" + $imagePath);
}
 

ionic2如何升级到最新版本、配置开发环境的更多相关文章

  1. 【转】Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)

    http://blog.csdn.net/ccf19881030/article/details/9204801 很久以前使用博客园博主子龙山人的一篇博文<Cocos2d-x win7+vs20 ...

  2. Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)

      写这篇博客时2D游戏引擎Cocos2d-x的最新版本为2.1.4,记得很久以前使用博客园博主子龙山人的一篇博文<Cocos2d-x win7+vs2010配置图文详解(亲测)>成功配置 ...

  3. python - selenium 2 升级到最新版本

    python - selenium 2 升级到最新版本 之前一直用的是selenium 2.48 .firefox36 而实际用户的浏览器可能都有自动更新功能,所以版本基本上是最新的.所以这次专门做了 ...

  4. 一行命令将ubuntu升级到最新版本

    zzupdate 是一个开源的命令行程序,通过将几个更新命令组合到一个命令中,使得将 Ubuntu 桌面和服务器版本升级到更新版本的任务变得容易一些. 将 Ubuntu 系统升级到更新的版本并不是一项 ...

  5. InstallShield 2012 Spring优惠升级到最新版本(2015.4.30之前)

    InstallShield 2012 Spring即将EOF,所以仍在使用InstallShield 2012 Spring的用户请注意下面内容: InstallShield 2012 Spring升 ...

  6. sqlserver mdf向上兼容附加数据库(无法打开数据库 'xxxxx' 版本 611。请将该数据库升级为最新版本。)

    最近工作中有一个sqlserver2005版本的mdf文件,还没有log文件,现在需要 附加到sqlserver2012,经过网上一顿搜索,把完整的过程奉上,供大家参考 首先创建数据库 再设置数据库的 ...

  7. node 随便升级到最新版本的遭遇

    将node 升级到最新版本后,创建一个RN新项目,执行:react-native init AwesomeProject  遇到: error An unexpected error occurred ...

  8. [UE4]把工程升级到最新版本

    右键UE4工程文件,选择“Switch Unreal Engine version...” 确定后,再次双击打开工程升级到最新版本了.

  9. 【升级至sql 2012】sqlserver mdf向上兼容附加数据库(无法打开数据库 'xxxxx' 版本 611。请将该数据库升级为最新版本。)

    sqlserver mdf向上兼容附加数据库(无法打开数据库 'xxxxx' 版本 611.请将该数据库升级为最新版本.) 最近工作中有一个sqlserver2005版本的mdf文件,还没有log文件 ...

随机推荐

  1. (转载)jQuery判断checkbox是否选中的3种方法(个人用第二种方法)

    方法一: if ($("#checkbox-id")get(0).checked) {     // do something } 方法二: if($('#checkbox-id' ...

  2. Java类型转换工具类(十六进制—bytes互转、十进制—十六进制互转,String—Double互转)

    /** * 数据类型转换工具类 * @author cyf * */ public class NumConvertUtil{ /** * bytes 转16进制字符串 * @param bArray ...

  3. 如何用Python为你的邮箱加油?还有这种操作!

    我来介绍一下我是如何使用 Python 来节省成本的. 我最近在开一辆烧 93 号汽油的车子.根据汽车制造商的说法,它只需要加 91 号汽油就可以了.然而,在美国只能买到 87 号.89 号.93 号 ...

  4. Scikit-learn数据变换

    转载自:https://blog.csdn.net/Dream_angel_Z/article/details/49406573 本文主要是对照scikit-learn的preprocessing章节 ...

  5. git查看添加删除远程仓库

    查看远程仓库 git remote -v 删除远程仓库 git remote remove origin 添加远程仓库 git remote add origin 仓库地址 关联远程分支 重新关联远程 ...

  6. Hyperledger Fabric(v1.1.0)编译时遇到的问题

    Hyperledger Fabric(v1.1.0)编译时遇到的问题 0. 编译过程的坑 编译时,按照如下顺序编译 make release,编译源码生成二进制文件 make docker,生成一系列 ...

  7. IIS 无法加载 CSS,JS的问题

    IIS 能加载 aspx,但不能加载里面的 js,css ,感觉有点坑. 解决方案如下:http://www.pageadmin.net/article/20121001/479.html 原来是没有 ...

  8. rename命令详解

    基础命令学习目录首页 原文链接:http://man.linuxde.net/rename 将main1.c重命名为main.c rename main1.c main.c main1.c renam ...

  9. BUAAMOOC-Alpha版本发布说明

    BUAAMOOC-Alpha版本发布说明 本说明为BUAAMOOCv1.0版发布说明. 软件截图 上届软件截图 可以看到上届的界面做的很简陋,对于登录.查看课程列表.观看视频等操作需要跳转多个页面,视 ...

  10. dsdsd

    #include<iostream> using namespace std; #include<string.h> #define max 205 char map[max] ...