IONIC3开发环境整理

前言

ionic V3是基于cordova和angular的混合开发平台,目前最新版V4

ionic v2/v3差别不大  v1没有基于angular v4可支持angular vue等

ionic v3官网文档地址  https://ionicframework.com/docs/v3/

安装环境

1. nodejs v10.16.3

安装 下载地址https://nodejs.org/dist/选择LTS版本下载安装

校验 打开CMD执行npm -version 和 node -version

2. ionic

安装 cmd执行 npm i -g ionic@4.6.0

校验 cmd执行 ionic -version

3.cordova

安装 cmd执行 npm i -g cordova@8.0.0

校验 cmd执行 cordova -version

4.nrm 切换npm仓库地址工具

安装 npm i -g nrm

使用 nrm ls  查看可切换仓库名

nrm use 仓库名  使用指定仓库名仓库,比如taobao

添加2.245上的npm私服地址

添加 nrm add 2.245 http://192.168.2.245:8083/repository/npm-group

切换 nrm use 2.245

查看 nrm config get registry

5,node-sass

项目安装依赖时会安装node-sass,它的binding. node文件经常404或下载失败

所以 配置系统环境变量

SASS_BINARY_PATH: D:\work\win32-x64-64_binding.node

指定binding. node文件(提供的node文件适用于windows64位nodejsv10.16.3)

提供的node文件下载地址ionic下的node文件

6,android环境

下载ionic目录中的gradle,sdk,jdk

6.1,jdk配置

jdk 解压jdk1.8.0_144.zip到自定义目录下

配置系统环境变量

变量名:JAVA_HOME

变量值:自定义目录\jdk1.8.0_91        // 要根据自己的实际路径配置

变量名:CLASSPATH

变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;        //记得前面有个"."

变量名:Path

变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

6.2,SDK

解压android_sdk到自定目录

配置环境变量

在系统变量新建:ANDROID_HOME,对应变量值为:(sdk安装路径根目录)

path中添加%ANDROID_HOME%\tools 和 %ANDROID_HOME%\platform-tools

校验 cmd执行adb devices检测连接到电脑的手机(手机需要打开USB调试)

以管理员身份运行sdk目录中的sdk manager

取消所有勾选,重新勾选tools所有,build-tools28.0.3,安卓28中勾选platform28

点下边下载,弹框全部选同意,开始下载

6.3,gradle构建工具

解压gradle到指定目录,配置系统环境变量

GRADLE_HOME=解压的gradle根目录

path中添加%GRADLE_HOME%\bin

检测gradle -version

6.4,adb 简单使用

adb tcpip 5555 连接数据线状态下开启无线模式(手机重启需要开启)

adb connect 手机ip:5555 连接指定ip的无线模式下的手机终端

adb shell 进入手机shell,如果提示close 则使用adb reconnect重连

多个设备的情况下,所有命令必须加  -s 设备名

adb install **.apk 安装app

7,ios环境

必须MAC系统,安装Xcode 7 or higher

8.开发常用命令

官方地址 https://ionicframework.com/docs/v3/cli/commands.html

8.1.创建项目 ionic start 项目名

参数  --type ionic1        创建ionic v1项目

  --type ionic-angular 创建ionic v3项目

示例选项有: tabs 一个具有简单选项卡式界面的启动项目

blank 一个空白项目

sidemenu 一个菜单侧边项目

super 一个完整示例

conference 演示realworld应用程序的项目

tutorial 包含引导的示例

aws aws手机启动示例

其他选项根据命令行提示来

? Install the free Ionic Appflow SDK and connect your app? (Y/n) 选择n

创建好进入项目根目录执行 ionic serve 浏览器浏览

8.2.运行已有/新项目到设备

1.使用nrm use taobao切换npm仓库

2.项目目录执行npm i 安装依赖,可重复执行保证依赖成功安装

3.添加平台ionic cordova platform add android@8.0.0

已存在平台,删除平台后重新添加

8.3.浏览器运行

ionic serve 可在浏览器8100端口运行浏览项目,涉及插件调用没处理的需要在真实设备运行

8.4.平台管理

ionic cordova platform remove android/ios 删除

ionic cordova platform add android@8.0.0/ios@5.5.0  添加,版本不同生成的平台目录结构可能不同

查看项目根目录是否有platforms目录,下边有android或ios等目录

添加android@8.0.0后将xml/network_security_config.xml覆盖掉项目resource/android/xml中的

8.5.运行到android

adb devices 检测设备有没有连接上

ionic cordova run android -lc

-lc 热部署项目 到已连接设备(多个设备需要指定-s 设备名)

8.6.运行到ios

ionic corodva prepare ios 准备代码到platforms下的指定平台目录

在mac使用Xcode打开platforms/ios项目

具体查看https://ionicframework.com/docs/v3/intro/deploying/

9.打包

1.可以基于nodejs编写js脚本配合package.json的scripts中配置命令执行脚本和命令

nodejs 脚本可复制/删除/替换/操作源码文件配置文件等

比如:大部分项目中配置

"scripts": {

"builddebug": "node build/build.js build debug && ionic cordova build android --prod && node build/build.js exapk debug",

"buildrelease": "node build/build.js build release && ionic cordova build android --prod --release && node build/build.js exapk release",

分解:

node build/build.js build debug 执行build/build.js命令 传参build 和debug

ionic cordova build android --prod 打包安装的命令

node build/build.js exapk debug 执行build/build.js命令 传参exapk和debug

使用直接 npm run buildrelease 就会打包正式版并且重命名打包出来的apk文件,并复制到build目录,具体可看build.js脚本,自己写的,可参考

2.android

ionic cordova build android --prod --release 不借助js脚本执行成功后需要在平台对应目录下去找打包出来的apk

android打包签名

sdk环境包含的keytool生成签名文件

参考: https://www.jianshu.com/p/8b759b0a5c30 或 搜索android keytool使用

常用

//生成

keytool -genkey -keyalg RSA -keystore netbox.jks

//查看密钥库所有别名

keytool -list -keystore netbox.jks

//删除别名

//keytool -delete -alias 别名 -keystore netbox.jks

//增加别名

keytool -genkeypair -alias 别名 -keystore netbox.jks

项目根目录创建 build.json

参考cordova签名配置 https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html#signing-an-app

3.ios

使用xcode打开platforms/ios项目后,完全按照ios项目使用Xcode打包发布即可

5.插件使用

管理

ionic cordova plugin add 插件id@版本

ionic cordova plugin remove 插件id

插件有依赖关系,删除的时候有可能提示先删除依赖者

相关

ionic插件文档https://ionicframework.com/docs/v3/native/

ionic插件基于cordova的,插件归根揭底还是corodva插件,ionic提供了ts定义

cordova插件文档在

https://cordova.apache.org/docs/en/latest/guide/hybrid/plugins/index.html

6.替换图标和启动屏

1.替换项目resources中的icon(1024×1024px)和splash(2732×2732)

2.安装cordova-res

执行npm i -g cordova-res  因为该工具依赖底层图像处理库,可参考下边问题记录处理安装过程中出现的问题

3.项目根目录执行,生成指定平台不同尺寸的图标和启动屏

cordova-res android/ios

7.创建页面,组件等

ionic generate [<type>] [<name>] 简写 ionic g [<type>] [<name>]

type有component, directive, page, pipe, provider, tabs

示例: ionic generate page Login

ionic generate pipe MyFilterPipe

10.问题记录

  1. no such file or directory, scandir '*\node_modules\node-sass\vendor'

    + 因为没有成功安装bind文件

    + 解决

      + SET SASS_BINARY_PATH=%cd%/build/win32-x64-64_binding.node && npm rebuild node-sass

      + 查看node-modeles下的node-sass有了vendor/win32-x64-64目录

      + 将build中的win32-x64-64_binding.node复制到vendor/win32-x64-64目录,改名binding.node

  2. -lc 运行到手机的app加载报错ERR_ClEARTEXT_NOT_PERMITTED

      + 因为手机系统9.0的安全限制

      + 解决

        + 将xml/network_security_config.xml覆盖掉项目resource/android/xml中的

  3.组件加载不进来,执行命令ionic cordova prepare android


  4.安装依赖出现cordova-res装不上去的,可以先在package.json dev依赖中删掉cordova-res

  5.ionic cordova resource 503错误不能用了

因为新版本@ionic/cli使用了cordova-res

解决

    不用升级ionic cli 直接在项目安装cordova-res

    执行npm i cordova-res出现错误,按照下边的步骤解决

    cordova-res依赖sharp sharp使用到libvips libvips需要使用node-gyp现场编译源码安装

    一,libvips从github下载问题

    info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.9.1/libvips-8.9.1-win32-x64.tar.gz

    ERR! sharp getaddrinfo ENOENT github-production-release-asset-2e65be.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com:443

    解决:

    1.使用 npm config get chache查看node缓存目录

默认在C:\Users\用户名\AppData\Roaming\npm-cache\_libvips

    2.手动下载https://github.com/lovell/sharp-libvips/releases/download/v8.9.1/libvips-8.9.1-win32-x64.tar.gz

    3.放在node缓存目录下的_libvips中

    二,node-gyp.js问题

    1.npm install -g node-gyp

    2.npm config set node_gyp "node 您的npm安装目录\node_modules\node-gyp\bin\node-gyp.js"

    三,node-gyp在win10上使用提示找不到visual studio什么的

    执行npm i -g windows-build-tools

    会重启多次

    再次安装

    执行cordova-res -help

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342