{"id":13601983,"url":"https://github.com/pengkobe/ionic4-boilerplate","last_synced_at":"2025-04-01T11:56:06.856Z","repository":{"id":39562178,"uuid":"155319672","full_name":"pengkobe/ionic4-boilerplate","owner":"pengkobe","description":":rocket: boilerplate for ionic4 with CI based on travis and fastlane. doc and example are provided","archived":false,"fork":false,"pushed_at":"2023-01-04T16:37:32.000Z","size":7846,"stargazers_count":26,"open_issues_count":30,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-07T04:41:34.210Z","etag":null,"topics":["cordova","fastlane","ionic","ionic4","ngrx","travis"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pengkobe.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-30T03:35:10.000Z","updated_at":"2024-05-16T04:06:18.000Z","dependencies_parsed_at":"2023-02-02T18:46:08.314Z","dependency_job_id":null,"html_url":"https://github.com/pengkobe/ionic4-boilerplate","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pengkobe%2Fionic4-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pengkobe%2Fionic4-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pengkobe%2Fionic4-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pengkobe%2Fionic4-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pengkobe","download_url":"https://codeload.github.com/pengkobe/ionic4-boilerplate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246635958,"owners_count":20809331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cordova","fastlane","ionic","ionic4","ngrx","travis"],"created_at":"2024-08-01T18:01:11.107Z","updated_at":"2025-04-01T11:56:06.829Z","avatar_url":"https://github.com/pengkobe.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# ionic4-boilerplate\n\n[![build status][travis-image]][travis-url]\n[![David deps][david-image]][david-url]\n\n[travis-image]: https://img.shields.io/travis/pengkobe/ionic4-boilerplate.svg?style=flat-square\n[travis-url]: https://travis-ci.org/pengkobe/ionic4-boilerplate\n[david-image]: https://img.shields.io/david/pengkobe/ionic4-boilerplate.svg?style=flat-square\n[david-url]: https://david-dm.org/pengkobe/ionic4-boilerplate\n\nboilerplate for ionic4  \nmigrate and upgrade from : https://github.com/pengkobe/ionic-boilerplate\n\nnotes: *Please ignore the CI build error status. it mainly caused by ios 2-factor authentication.*\n\n## 使用\n\n```bash\ngit clone https://github.com/pengkobe/ionic4-boilerplate\ncd ionic4-boilerplate\nnpm install\n# git commit tool\nnpm install -g commitizen\ncommitizen init cz-conventional-changelog --save --save-exact\n```\n\n## 支持项\n\n- [x] 运行环境介绍\n- [x] 开发文档\n  - [x] 开发流程与规范\n    - [x] git\n    - [x] 测试\n    - [x] 代码规范\n    - [x] 工具集成\n  - [x] 环境搭建\n    - [x] Ionic\n    - [x] IOS\n    - [x] Android\n  - [x] 部署\n    - [x] travis\n    - [x] jenkins\n    - [x] fastlane\n    - [x] docker\n- [x] 版本更新( apk )\n- [x] 支持多语言[中/英]\n- [x] http\n  - [x] http-interceptor\n  - [x] rebirth-http\n- [x] 本地存储\n  - [x] rebirth-storage\n- [x] 钩子( hooks )\n- [x] 支持主目录相对定位\n- [x] tslint 与 scsslint\n- [x] 定义好目录结构\n- [x] 集成 echarts\n- [x] 去除开机白屏等待\n- [x] 物理返回键双击退出\n- [x] 错误上报\n- [x] ngrx\n  - [x] TODO Demo\n- [x] 主题切换示例\n- [x] 常用组件\n  - [x] 二维码扫描\n  - [x] 日历组件\n  - [x] 动态表单\n- [x] PWA\n- [x] Cordova 插件说明与示例\n  - [x] 断网检测\n  - [x] 本地通知\n  - [x] 远程推送\n- [x] 用户行为统计\n- [x] 技巧与工具分享\n\n## 运行环境介绍\n\n本脚手架构建环境为( base on command: `ionic info`):\n\n### Android\n\n```bash\nIonic:\n   ionic (Ionic CLI)             : 4.12.0\n   Ionic Framework               : @ionic/angular 4.3.1\n   @angular-devkit/build-angular : 0.12.4\n   @angular-devkit/schematics    : 7.2.4\n   @angular/cli                  : 7.2.4\n   @ionic/angular-toolkit        : 1.4.1\n\nCordova:\n\n   cordova (Cordova CLI) : not installed\n   Cordova Platforms     : not available\n   Cordova Plugins       : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 2.2.0, (and 21 other plugins)\n\nSystem:\n\n   Android SDK Tools : 26.1.1\n   NodeJS            : v8.9.0\n   npm               : 5.5.1\n   OS                : Windows 10\n```\n\n### IOS\n\n```\nIonic:\n\n   ionic (Ionic CLI)             : 4.12.0\n   Ionic Framework               : @ionic/angular 4.3.1\n   @angular-devkit/build-angular : 0.12.4\n   @angular-devkit/schematics    : 7.2.4\n   @angular/cli                  : 7.2.4\n   @ionic/angular-toolkit        : 1.4.1\n\nCordova:\n\n   cordova (Cordova CLI) : 8.0.0\n   Cordova Platforms     : ios 4.5.5\n   Cordova Plugins       : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 2.3.1, (and 19 other plugins)\n\nSystem:\n\n   ios-deploy : 1.9.1\n   ios-sim    : 5.0.3\n   NodeJS     : v8.9.0\n   npm        : 5.5.1\n   OS         : macOS Mojave\n   Xcode      : Xcode 10.1 Build version 10B61\n```\n\n## 开发文档\n\n- [x] [开发流程与规范](./doc/code-spec.md)\n  - [x] git\n  - [x] 测试\n  - [x] 代码规范\n  - [x] 工具集成\n- [x] 环境搭建\n  - [x] [Ionic](./doc/ionic.md)\n  - [x] [IOS](./doc/ios.md)\n  - [x] [android](./doc/android.md)\n- [x] 部署\n  - [x] [travis](./doc/travis.md)\n  - [x] [jenkins](./doc/jenkins.md)\n  - [x] [fastlane](./doc/fastlane.md)\n  - [x] [docker](./doc/docker.md)\n\n## 版本更新\n\n支持 APK 更新与线上代码热更新  \nsee: [version-update](./doc/version-update.md)\n\n## 支持多语言[中/英]\n\n基于 ngx-translate  \nsee：https://github.com/ngx-translate/core\n\n版本需要与 angular 对应的版本相匹配\n\n```bash\nnpm install @ngx-translate/core@10.0.2 --save\nnpm install @ngx-translate/http-loader@3.0.1 --save\n```\n\n## http\n\n### http interceptor\n\n对服务端返回码做全局处理，参见代码 `http.interceptor.service.ts`\n\n### rebirth-http\n\n基于 [rebirth-http](https://github.com/NG-ZORRO/rebirth-http) 进行开发，可以大大节省开发工作量和代码维护难度。\n\n## 本地存储\n\n- 结合 [rebirth-storage](https://github.com/greengerong/rebirth-storage) 实现，支持了 localstorage 和内存两种方式\n- 使用 `@ionic/storage`，尽量不使用 localstorage，系统清内存时会被删掉\n\n## 钩子\n\n\u003e 新版仍然可以使用，但是已经废弃了\n\n位于文件夹 `hooks` 下, 可以写各个声明周期的钩子，目前引进的钩子有\n\n- `010_update_config`, 根据 package.json 中的版本号更新 config.xml\n\n## 支持主目录相对定位\n\n通过在 tsconfig.json 中增加以下配置可以实现目录相对定位\n\n```bash\n  \"baseUrl\": \"./src/\",\n    \"paths\": {\n      \"@app/env\": [\"environments/environment\"],\n      \"@components/*\": [\"app/components/*\"],\n      \"@services/*\": [\"app/services/*\"],\n      \"@modals/*\": [\"app/modals/*\"],\n      \"@directives/*\": [\"app/directives/*\"],\n      \"@pipes/*\": [\"app/pipes/*\"],\n      \"@app/*\": [\"app/*\"],\n      \"@root/*\": [\"./*\"],\n      \"echarts\": [\"../node_modules/echarts/dist/echarts.min.js\"]\n    }\n```\n\n## tslint 与 scsslint\n\n详情参见项目目录下 `tslint.json` 与 `.scss-lint.yml`\n\n## 定义好目录结构\n\n按照功能模块职能进行区分，增加 share 与 core 等文件夹存放公有的模块和服务。\n\n## 集成 echarts\n\n脚手架已集成 echarts，教程可以参见 [Integrate-ECharts-into-an-Ionic-2-app](https://golb.hplar.ch/2017/02/Integrate-ECharts-into-an-Ionic-2-app.html)\n\n## 去除开机白屏等待\n\n在 config.xml 中替换 `Splash Screen` 相关配置为如下:\n\n```xml\n\u003cpreference name=\"FadeSplashScreenDuration\" value=\"300\" /\u003e\n\u003cpreference name=\"SplashShowOnlyFirstTime\" value=\"false\" /\u003e\n\u003cpreference name=\"SplashScreen\" value=\"screen\" /\u003e\n\u003cpreference name=\"SplashScreenDelay\" value=\"3000\" /\u003e\n\u003cpreference name=\"AutoHideSplashScreen\" value=\"false\" /\u003e\n\u003cpreference name=\"FadeSplashScreen\" value=\"false\" /\u003e\n\u003cpreference name=\"ShowSplashScreen\" value=\"true\" /\u003e\n```\n\n## 物理返回键双击退出\n\n详情参见源代码下 `src/app/app.component.ts` 下方法 `registerBackButtonAction`\n\n## 错误上报\n\n基于 raven-js 上报错误信息至第三方平台。  \n文档地址：https://docs.sentry.io/clients/javascript/\n\n```bash\nnpm install raven-js --save\n```\n\n## ngrx\n\n脚手架已集成 [ngrx](https://github.com/ngrx), 本脚手架 TODO Demo 即基于 ngrx 进行开发\n\n## 主题切换示例\n\n参见代码示例\n\n## 常用功能\n\n本脚手架提供了下述常用功能 Demo\n\n- [x] 二维码扫描\n- [x] 日历\n- [x] 动态表单\n\n## PWA\n\n集成教程可以参见:  \nhttps://www.joshmorony.com/create-a-pwa-with-angular-service-workers-in-ionic-4/  \n需要注意的是，ionic4 目前是基于 Angular6 进行开发，所以安装时需要指定之前的版本\n\n```bash\nng add @angular/pwa@0.8.7 --project app\n```\n\n可以参见 issue: [ng add @angular/pwa doesn't work correctly in angular-cli 6.2.5 (Maximum call stack size exceeded)](https://github.com/angular/angular-cli/issues/12914)\n\n## Cordova 插件说明与示例\n\n脚手架使用到的 Cordova 插件列表  \nsee: [cordova-plugin](./doc/cordova-plugin.md)\n\n## 用户行为统计\n\n- 基于 微软的 [appcenter-sdk-cordova](https://github.com/Microsoft/appcenter-sdk-cordova)\n- 官网: https://appcenter.ms/\n- 文档: https://docs.microsoft.com/en-us/appcenter/sdk/analytics/cordova\n- Ionic 官网: https://beta.ionicframework.com/docs/native/app-center-analytics\n\n## 技巧与工具\n\nsee: [tools](./doc/tools.md)\n\n## License\n\nMIT@[yipeng.info](https://yipeng.info)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpengkobe%2Fionic4-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpengkobe%2Fionic4-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpengkobe%2Fionic4-boilerplate/lists"}