原文发表于我的技术博客

本文是「Ionic 入门与实战」系列连载的第二章第一节,主要对 Ionic 的开发环境配置做了简要的介绍,本文介绍的开发环境为 Mac 系统,Windows 系统基本类似,少许差别请查阅相关文档即可。

原文发表于我的技术博客

1. Ionic 环境的安装

1.1 Node.js 与 npm 介绍

Node.js 与 npm 是 Ionic 环境的基础,这里我们做一下简要介绍。

Node.js 是基于 Chrome's V8 JavaScript engine 构建的一个JavaScript runtime (一般翻译为 JavaScript 运行时),特点是事件驱动、非阻塞等。

npm 是 Node.js 中的 JavaScript 包管理。目前已经是最大的开源组件库,使用起来非常方便,也非常值得学习。

以上两个组件,只需要安装 Node.js 即可。

  • Mac 系统中,下载 pkg 安装;
  • Windows 系统中,下载对应的 msi 安装,注意 32 位和 64 位版本的区别。

下载地址:https://nodejs.org/en/download/

安装后,可以通过 node -v 查看当前版本,确认是否安装成功或者查看当前的 Node.js 版本。

Ionic 推荐安装 Node.js 的版本为 v4.0+,即高于 4.0 的版本即可。

1.2 Ionic 的安装

这里使用最新的 v2.0 beta 版本进行学习,而且 2.0 版本对于 1.0 版本的所有功能都进行了兼容,所以项目如果从 1.0 转成 2.0,也是可以平滑过渡的。

安装 Ionic,使用以下命令即可。

$ npm install -g ionic@beta

如果需要安装 Ionic 1.0 版本,使用如下命令即可。

$ npm install -g ionic

2.初始化空项目并体验

安装了 Ionic 后,使用如下命令初始化一个空项目,名称为 ionicdemo。

$ ionic start ionicdemo --v2

ionic start 命令默认采用 tabs template 作为初始化项目的模板,如果需要其他的模板,那么在项目名称后面添加上对应的模板名称即可,如要使用 tutorial template 作为模板,那么命令如下。

$ ionic start ionicdemo tutorial --v2

其他的模板列表参见这里

注意这里的 --v2 参数,因为 ionic 命令是和 1.0 版本公用的,所以添加 --v2 参数明确了使用2.0 版本去初始化项目。

此过程主要安装了必要的 npm modules,并且安装依赖的 Cordova 组件。

这里还有一个技巧,就是如果想使用 TypeScript,那么只要在命令后面添加 --ts 参数即可。

进入项目目录。

$ cd ionicdemo

运行,在浏览器中查看效果。

$ ionic serve

当需要在浏览器中模拟 iPhone 下的 UI 展示,需要选择对应的模拟设备,刷新即可。

这里的原理是 Chrome 修改了对应的 User-Agent,Ionic 根据此进行了对应的 UI 呈现。

在控制台中可以看到。

使用浏览器进行开发调试是非常方便的方案,不需要频繁连接真机,并且可以方便直观地借助 Chrome 控制台进行样式、JavaScript 等调试。

如果需要在模拟器上运行,那么 iOS 设备执行下面的命令即可。

$ ionic run ios

如果是 Android 设备,那么执行下面的命令。

$ ionic run android

这样就可以在对应的模拟器上运行了,至于详细的 iOS/Android 的环境配置,我们在下面的章节将有详细地讲解。

Ionic 入门与实战之第二章第一节:Ionic 环境搭建之开发环境配置的更多相关文章

  1. Ionic 入门与实战之第二章第二节:Ionic 环境搭建之 Ionic Lab 使用

    原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第二节,主要对 Ionic Lab 工具作了介绍,并讲解了其使用方法,这也是一个开发 Ionic 比较好的调试工具. 原文发表于 ...

  2. tensorflow2.0学习笔记第二章第一节

    2.1预备知识 # 条件判断tf.where(条件语句,真返回A,假返回B) import tensorflow as tf a = tf.constant([1,2,3,1,1]) b = tf.c ...

  3. struts2系列(一):struts2入门(struts2的产生、struts2的工作流程、搭建struts2开发环境)

    一. struts2的产生 struts1的缺点:                         1. ActionForm过多,而且这个ActionForm在很大程度上又和VO(POJO)重复  ...

  4. android 串口开发第一篇:搭建ndk开发环境以及第一个jni调用程序

    一:ndk环境搭建 1:开发环境 我使用的是android studio 2.3.3版本,搭建ndk开发环境比较简单,打开File----Settings----Appearance&Beha ...

  5. Ionic 入门与实战之第一章:Ionic 介绍与相关学习资源

    原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第一章,主要对 Ionic 的概念.发展历程.适配的移动平台等知识进行了介绍,并分享了 Ionic 相关的学习资源. 原文发表于我的技 ...

  6. Ionic 入门与实战之第三章:Ionic 项目结构以及路由配置

    原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第三章,主要对 Ionic 的项目结构作了介绍,并讲解了Ionic 中的路由概念以及相关配置. 原文发表于我的技术博客 1. Ioni ...

  7. 2017.2.20 activiti实战--第二章--搭建Activiti开发环境及简单示例(二)简单示例

    学习资料:<Activiti实战> 第一章 搭建Activiti开发环境及简单示例 2.5 简单流程图及其执行过程 (1)leave.bpmn 后缀名必须是bpmn.安装了activiti ...

  8. 第一章 搭建Qt开发环境

    第一章 搭建Qt开发环境 1.到http://download.qt-project.org/archive/上下载Qt的源码包.我下载的是qt-everywhere-opensource-src-4 ...

  9. 第二章 搭建Android开发环境

    这一章为我们讲解了如何搭建Android开发环境. 首先要了解的是Android底层开发需要哪些工具:搭建android应用程序开发环境.android NDK开发环境和交叉编译环境,前两个用来测试L ...

随机推荐

  1. Derek解读Bytom源码-持久化存储LevelDB

    作者:Derek 简介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom ...

  2. UITableViewCell 获取当前位置

    CGRect rectInTableView = [tableView rectForRowAtIndexPath:indexPath]; CGRect rectInSuperview = [tabl ...

  3. 使用Tampermonkey(油猴) 插件,重新实现了,百度搜索热点过滤功能

    昨天晚上,花了点时间学习了Chrome插件的制作方法,并书写了<Chrome 百度搜索热点过滤插件 - 开源软件>这一文章,简单地介绍自己实现的百度搜索热点过滤神器的原理和使用方式,并进行 ...

  4. Linux (Fedora 28) 如何查看 CPU 温度

    机器突然负载有点高,查看CPU 温度的方法: 1.yum install lm_sensors; 2.sensors-detect 3.sensors   这些需要机器具备相应的设备,如果在虚拟机运行 ...

  5. ubuntu16.04系统彻底卸载mysql,并源码免编译重装MySQL的步骤

    今天的总结 ubuntu上彻底卸载MySQL或重新安装 https://www.jianshu.com/p/974b33873bca #查看是否存在mysql服务 service mysql stat ...

  6. CefSharp的一些初始化操作

    if (!CefSharp.Cef.IsInitialized) { var setting = new CefSharp.CefSettings { Locale = "zh-CN&quo ...

  7. Navicat 连接Oracle时提示oracle library is not loaded的问题解决

    笔者使用的Navicat Premium 12启动界面截屏: 请注意是64位的.笔者win7 64位系统. 连接Oracle时提示“oracle library is not loaded”. 解决方 ...

  8. 网络编程_IP对象_InetAddress

    import java.net.InetAddress; import java.net.UnknownHostException; public class IPDemo { public stat ...

  9. python五十五课——calendar模块

    4.calendar模块: 构造:calendar(year,[w=2,l=1,c=6]):返回year年的完整的日历信息对象 和闰年相关的函数如下: isleap(year):判断year是否是闰年 ...

  10. Swift中的反射

    原文:http://www.cocoachina.com/applenews/devnews/2014/0623/8923.html Swift 事实上是支持反射的.只是功能略弱. 本文介绍主要的反射 ...