好久没写东西了,去年用了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. 多栏布局与JS实现瀑布流

    css3属性之多栏布局与JS实现瀑布流 背景:之前打算自己总结一下flex布局的知识点,发现自己无从下手,原因在何处:我反思了一下,其实原因很简单,使用的次数少,更多的时间使用了百分比,浮动和定位解决 ...

  2. java学习(五)Number类、Math类

    Number类 顾名思义嘛,搞数字的,以前也用到过,就是相当于内置了一堆数字的类嘛,用哪种类型的就引用下这个包就好了呗 Integer.Long.Byte.Double.Float.Short都是Nu ...

  3. java项目部署之后,Jar包中配置文件修改

    Java项目发布时,配置文件不像.net项目一样与工程路径保持一致,而是直接包含在了jar包中,此时要修改就没那么方便了,我们可以将配置文件从jar包抽离出来,修改完之后再写入Jar包即可, 也没那么 ...

  4. Unity扩展编辑器二

    Unity支持自行创建窗口,也支持自定义窗口布局,在Project视图中创建一个Editor文件夹,在文件夹中创建一条脚本 自定义窗口需要让脚本继承EditorWindow在设置MenuItem,此时 ...

  5. 腾讯hr面

    腾讯hr面面经 20181018 寒暄几句 hr自我介绍 hr介绍面试和最后出结果的时间周期 进入主题 自我介绍 考研成绩专业第一 聊考研(考研的经过.考研和保研) 本科成绩 考研成绩超长发挥还是正常 ...

  6. 会了这十种Python优雅的写法,让你工作效率翻十倍,一人顶十人用!

      我们都知道,Python 的设计哲学是「优雅」.「明确」.「简单」.这也许很多人选择 Python 的原因.但是我收到有些伙伴反馈,他写的 Python 并不优雅,甚至很臃肿,那可能是你的姿势不对 ...

  7. Netty源码分析第2章(NioEventLoop)---->第5节: 优化selector

    Netty源码分析第二章: NioEventLoop   第五节: 优化selector 在剖析selector轮询之前, 我们先讲解一下selector的创建过程 回顾之前的小节, 在创建NioEv ...

  8. Netty源码分析第7章(编码器和写数据)---->第5节: Future和Promies

    Netty源码分析第七章: 编码器和写数据 第五节: Future和Promise Netty中的Future, 其实类似于jdk的Future, 用于异步获取执行结果 Promise则相当于一个被观 ...

  9. Tomcat源码学习(3)—— Digester介绍

    Digester方法详解: 通读Digester之前先分析下他的结构: 1.1该类继承了方法DefaultHandler2,DefaultHandler2继承了DefaultHandler是和sax解 ...

  10. 大牛都是这样写测试用例的,你get到了嘛?

    1. 用于语句覆盖的基路径法 基路径法保证设计出的测试用例,使程序的每一个可执行语句至少执行一次,即实现语句覆盖.基路径法是理论与应用脱节的典型,基本上没有应用价值,读者稍作了解即可,不必理解和掌握. ...