好久没写东西了,去年用了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. python 排序模块 ———— heapq(学习笔记)

    from heapq import * def heasort(initi):# 排序 h=[] for value in initi: heappush(h,value)#将每一个item进入hea ...

  2. 第四篇 HTTP请求返回状态码收集及解释

    [转载]https://blog.csdn.net/wangsen2235068/article/details/8081274 当用户试图通过 HTTP 访问一台正在运行 Internet 信息服务 ...

  3. python爬虫beautifulsoup4系列1

    前言 以博客园为例,爬取我的博客上首页的发布时间.标题.摘要,本篇先小试牛刀,先了解下它的强大之处,后面讲beautifulsoup4的详细功能. 一.安装 1.打开cmd用pip在线安装beauti ...

  4. lua中table的常用方法

    转载:https://blog.csdn.net/Fenglele_Fans/article/details/83627021 1:table.sort() language = {"lua ...

  5. NIO - Buffer

    NIO —— Buffer源码分析 Buffer的类结构 底层的基础类是抽象类-Buffer,其中定义了四个变量:capacity(容量),limit(限制),position(位置),mark(标记 ...

  6. Hadoop源码阅读环境搭建(IDEA)

    拿到一份Hadoop源码之后,经常关注的两件事情就是 1.怎么阅读?涉及IDEA和Eclipse工程搭建.IDEA搭建,选择源码,逐步导入即可:Eclipse可以选择后台生成工程,也可以选择IDE导入 ...

  7. DevOps on AWS之OpsWorks初体验

    AWS OpsWorks 是一款配置管理服务,提供 Chef 和 Puppet 的托管EC2虚拟机实例.Chef 和 Puppet 是自动化平台,允许用户使用代码来自动配置服务器.用户借助OpsWor ...

  8. AI入门课程资源

    企业 kaggle https://www.kaggle.com/learn/overview Google   介绍 https://developers.google.cn/machine-lea ...

  9. C++判断回文

    判断一个字符串是否为回文,如“goddog”. 代码: #include <iostream> #include <string> #include <stdio.h&g ...

  10. docker pull下来的镜像放哪儿了?

    本机docker版本 docker –version Docker version 1.进入docker 目录 root@Rightsec:~# cd /var/lib/docker root@Rig ...