1.安装 nodejs
到官网下载 https://nodejs.org/ ,下载完直接安装就好了。
以下命令查看是否安装成功:
Administrator@YANL / $ node -v v0.12.2 Administrator@YANL / $ npm -v 2.7.4
2. 安装git
到官网下载:http://git-scm.com/download/win
安装完成后,把安装目录\bin添加到Path环境变量:
如:Path = %Path%;C:\Program Files (x86)\Git\bin
3.安装 android sdk tools
baidu 搜索:Android SDK Tools,下载并安装,安装完成后,在程序菜单中找到"SDK Manager" 启动下载 android sdk.
需要下载: Android SDK Platform-tools,Android SDK Build-tools及最新版的Android sdk
下载完成后自动安装。
添加环境变量:ANDROID_HOME :指向Android SDK Tools安装目录
在Path环境变量中添加:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools
4.安装ANT
到http://ant.apache.org/ 下载ANT后,解压
添加环境变量: ANT_HOME=解压目录
在Path环境变量中添加:%ANT_HOME%\bin
5.安装JAVA
到官网下载Java ,安装完成后,添加环境变量 JAVA_HOME=java安装或解压目录
在Path环境变量中 添加:%JAVA_HOME%\bin
6.安装 ionic 和 cordova
npm install -g cordova ionic
安装完成后,就可以运行npm和cordova命令了:
Administrator@YANL / $ ionic -v 1.3.22 Administrator@YANL / $ cordova -v 5.0.0
6.创建工程
$ ionic start TestApp blank Creating Ionic app in folder e:\cordova_workspace\TestApp based on blank proje Downloading: https://github.com/driftyco/ionic-app-base/archive/master.zip [=============================] 100% 0.0s Downloading: https://github.com/driftyco/ionic-starter-blank/archive/master.zi [=============================] 100% 0.0s Update config.xml Initializing cordova project Updated the hooks directory to have execute permissions running cordova plugin add org.apache.cordova.device WARNING: org.apache.cordova.device has been renamed to cordova-plugin-device. u may not be getting the latest version! We suggest you `cordova plugin rm org pache.cordova.device` and `cordova plugin add cordova-plugin-device`. Fetching plugin "org.apache.cordova.device" via cordova plugins registry npm http GET http://registry.cordova.io/org.apache.cordova.device npm http 304 http://registry.cordova.io/org.apache.cordova.device Saving plugin to package.json file Adding since there was no existingPlugin Updated the hooks directory to have execute permissions running cordova plugin add org.apache.cordova.console WARNING: org.apache.cordova.console has been renamed to cordova-plugin-console You may not be getting the latest version! We suggest you `cordova plugin rm o .apache.cordova.console` and `cordova plugin add cordova-plugin-console`. Fetching plugin "org.apache.cordova.console" via cordova plugins registry npm http GET http://registry.cordova.io/org.apache.cordova.console npm http GET http://registry.cordova.io/org.apache.cordova.console npm http GET http://registry.cordova.io/org.apache.cordova.console Saving plugin to package.json file Adding since there was no existingPlugin Updated the hooks directory to have execute permissions running cordova plugin add com.ionic.keyboard Fetching plugin "com.ionic.keyboard" via cordova plugins registry npm http GET http://registry.cordova.io/com.ionic.keyboard npm http GET http://registry.cordova.io/com.ionic.keyboard npm http 304 http://registry.cordova.io/com.ionic.keyboard Saving plugin to package.json file Adding since there was no existingPlugin Your Ionic project is ready to go! Some quick tips: * cd into your project: $ cd TestApp * Setup this project to use Sass: ionic setup sass * Develop in the browser with live reload: ionic serve * Add a platform (ios or Android): ionic platform add ios [android] Note: iOS development requires OS X currently See the Android Platform Guide for full Android installation instructions: https://cordova.apache.org/docs/en/edge/guide_platforms_android_index.md.ht * Build your app: ionic build <PLATFORM> * Simulate your app: ionic emulate <PLATFORM> * Run your app on a device: ionic run <PLATFORM> * Package an app using Ionic package service: ionic package <MODE> <PLATFORM> For more help use ionic --help or visit the Ionic docs: http://ionicframework. m/docs +---------------------------------------------------------+ + New Ionic Updates for May 2015 + + The View App just landed. Preview your apps on any device + http://view.ionic.io + + Invite anyone to preview and test your app + ionic share EMAIL + + Generate splash screens and icons with ionic resource + http://ionicframework.com/blog/automating-icons-and-splash-screens/ + +---------------------------------------------------------+
为项目添加运行平台:
$ ionic platform add android Updated the hooks directory to have execute permissions Downloading Default Ionic Resources Downloading: https://github.com/driftyco/ionic-default-resources/archive/master. zip [=============================] 100% 0.0s Done adding default Ionic resources Adding icons for platform: android running cordova platform add android npm http GET https://registry.npmjs.org/cordova-android/4.0.0 npm http GET https://registry.npmjs.org/cordova-android/4.0.0 npm http 200 https://registry.npmjs.org/cordova-android/4.0.0 npm http GET https://registry.npmjs.org/cordova-android/-/cordova-android-4.0.0. tgz npm http 200 https://registry.npmjs.org/cordova-android/-/cordova-android-4.0.0. tgz Adding android project... Creating Cordova project for the Android platform: Path: platforms\android Package: com.ionicframework.testapp395516 Name: TestApp Activity: MainActivity Android target: android-22 Copying template files... Android project created with cordova-android@4.0.0 Running command: "c:\Program Files\nodejs\node.exe" e:\cordova_workspace\TestApp \hooks\after_prepare\010_add_platform_class.js e:/cordova_workspace/TestApp add to body class: platform-android Installing "com.ionic.keyboard" for android Installing "org.apache.cordova.console" for android Installing "org.apache.cordova.device" for android Saving platform to package.json file
7.查看项目目录结构
WWW目录结构:
index.html:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> <title></title> <link href="lib/ionic/css/ionic.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <!-- ionic/angularjs js --> <script src="lib/ionic/js/ionic.bundle.js"></script> <!-- cordova script (this will be a 404 during development) --> <script src="cordova.js"></script> <!-- your app's js --> <script src="js/app.js"></script> </head> <body ng-app="starter"> <ion-pane> <ion-header-bar class="bar-stable"> <h1 class="title">Ionic Blank Starter</h1> </ion-header-bar> <ion-content> </ion-content> </ion-pane> </body> </html>
8.安装js模块(可以不安装)
package.json如下:
{ "name": "testapp", "version": "1.0.0", "description": "TestApp: An Ionic project", "dependencies": { "gulp": "^3.5.6", "gulp-sass": "^1.3.3", "gulp-concat": "^2.2.0", "gulp-minify-css": "^0.3.0", "gulp-rename": "^1.2.0" }, "devDependencies": { "bower": "^1.3.3", "gulp-util": "^2.2.14", "shelljs": "^0.3.0" }, "cordovaPlugins": [ "org.apache.cordova.device", "org.apache.cordova.console", "com.ionic.keyboard" ], "cordovaPlatforms": [ "android" ] }
在项目目录下运行:
mpm install ,安装package.json中的依赖的js模块
$ npm install npm WARN package.json testapp@1.0.0 No repository field. npm WARN package.json testapp@1.0.0 No README data - > node-sass@2.1.1 install e:\cordova_workspace\TestApp\node_modules\gulp-sass\no de_modules\node-sass > node scripts/install.js / > node-sass@2.1.1 postinstall e:\cordova_workspace\TestApp\node_modules\gulp-sas s\node_modules\node-sass > node scripts/build.js `win32-x64-node-0.12` exists; testing Binary is fine; exiting gulp-rename@1.2.2 node_modules\gulp-rename shelljs@0.3.0 node_modules\shelljs gulp-minify-css@0.3.13 node_modules\gulp-minify-css ├── memory-cache@0.0.5 ├── bufferstreams@0.0.2 (readable-stream@1.0.33) ├── through2@0.6.5 (xtend@4.0.0, readable-stream@1.0.33) ├── vinyl-sourcemaps-apply@0.1.4 (source-map@0.1.43) ├── clean-css@3.0.10 (commander@2.5.1, source-map@0.1.43) └── gulp-util@3.0.4 (array-differ@1.0.0, beeper@1.0.0, object-assign@2.0.0, a rray-uniq@1.0.2, lodash._reevaluate@3.0.0, lodash._reescape@3.0.0, lodash._reint erpolate@3.0.0, replace-ext@0.0.1, minimist@1.1.1, lodash.template@3.5.1, chalk@ 1.0.0, vinyl@0.4.6, dateformat@1.0.11, multipipe@0.1.2) gulp-concat@2.5.2 node_modules\gulp-concat ├── through2@0.6.5 (xtend@4.0.0, readable-stream@1.0.33) ├── concat-with-sourcemaps@1.0.2 (source-map@0.4.2) └── gulp-util@3.0.4 (array-differ@1.0.0, beeper@1.0.0, object-assign@2.0.0, a rray-uniq@1.0.2, lodash._reevaluate@3.0.0, lodash._reescape@3.0.0, lodash._reint erpolate@3.0.0, replace-ext@0.0.1, minimist@1.1.1, lodash.template@3.5.1, chalk@ 1.0.0, vinyl@0.4.6, dateformat@1.0.11, multipipe@0.1.2) gulp-util@2.2.20 node_modules\gulp-util ├── lodash._reinterpolate@2.4.1 ├── minimist@0.2.0 ├── chalk@0.5.1 (ansi-styles@1.1.0, escape-string-regexp@1.0.3, supports-colo r@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0) ├── vinyl@0.2.3 (clone-stats@0.0.1) ├── dateformat@1.0.11 (get-stdin@4.0.1, meow@3.1.0) ├── through2@0.5.1 (xtend@3.0.0, readable-stream@1.0.33) ├── multipipe@0.1.2 (duplexer2@0.0.2) └── lodash.template@2.4.1 (lodash.values@2.4.1, lodash.templatesettings@2.4.1 , lodash._escapestringchar@2.4.1, lodash.defaults@2.4.1, lodash.keys@2.4.1, loda sh.escape@2.4.1) gulp@3.8.11 node_modules\gulp ├── pretty-hrtime@0.2.2 ├── interpret@0.3.10 ├── deprecated@0.0.1 ├── archy@1.0.0 ├── tildify@1.0.0 (user-home@1.1.1) ├── v8flags@2.0.5 (user-home@1.1.1) ├── minimist@1.1.1 ├── semver@4.3.4 ├── chalk@0.5.1 (ansi-styles@1.1.0, escape-string-regexp@1.0.3, supports-colo r@0.2.0, has-ansi@0.1.0, strip-ansi@0.3.0) ├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream @0.1.5) ├── gulp-util@3.0.4 (array-differ@1.0.0, beeper@1.0.0, object-assign@2.0.0, a rray-uniq@1.0.2, lodash._reevaluate@3.0.0, lodash._reescape@3.0.0, lodash._reint erpolate@3.0.0, replace-ext@0.0.1, vinyl@0.4.6, through2@0.6.5, multipipe@0.1.2, dateformat@1.0.11, chalk@1.0.0, lodash.template@3.5.1) ├── vinyl-fs@0.3.13 (graceful-fs@3.0.6, mkdirp@0.5.0, strip-bom@1.0.0, vinyl@ 0.4.6, defaults@1.0.2, through2@0.6.5, glob-watcher@0.0.6, glob-stream@3.1.18) └── liftoff@2.0.3 (extend@2.0.1, flagged-respawn@0.3.1, resolve@1.1.6, findup -sync@0.2.1) gulp-sass@1.3.3 node_modules\gulp-sass ├── map-stream@0.1.0 ├── clone@0.1.19 ├── vinyl-sourcemaps-apply@0.1.4 (source-map@0.1.43) ├── gulp-util@3.0.4 (array-differ@1.0.0, beeper@1.0.0, object-assign@2.0.0, a rray-uniq@1.0.2, lodash._reescape@3.0.0, lodash._reinterpolate@3.0.0, lodash._re evaluate@3.0.0, replace-ext@0.0.1, minimist@1.1.1, lodash.template@3.5.1, chalk@ 1.0.0, vinyl@0.4.6, dateformat@1.0.11, through2@0.6.5, multipipe@0.1.2) └── node-sass@2.1.1 (get-stdin@4.0.1, object-assign@2.0.0, replace-ext@0.0.1, nan@1.8.4, semver@4.3.4, mkdirp@0.5.0, meow@3.1.0, cross-spawn@0.2.9, chalk@0.5 .1, npmconf@2.1.1, gaze@0.5.1, mocha@2.2.4, pangyp@2.2.0, sass-graph@1.3.0, requ est@2.55.0) bower@1.4.1 node_modules\bower ├── is-root@1.0.0 ├── junk@1.0.1 ├── stringify-object@1.0.1 ├── abbrev@1.0.5 ├── chmodr@0.1.0 ├── user-home@1.1.1 ├── rimraf@2.3.3 ├── archy@1.0.0 ├── bower-logger@0.2.2 ├── bower-endpoint-parser@0.2.2 ├── graceful-fs@3.0.6 ├── opn@1.0.2 ├── lockfile@1.0.0 ├── lru-cache@2.6.2 ├── retry@0.6.1 ├── nopt@3.0.1 ├── tmp@0.0.24 ├── q@1.4.0 ├── semver@2.3.2 ├── fstream@1.0.6 (inherits@2.0.1) ├── mout@0.11.0 ├── mkdirp@0.5.0 (minimist@0.0.8) ├── p-throttler@0.1.1 (q@0.9.7) ├── request-progress@0.3.1 (throttleit@0.0.2) ├── promptly@0.2.0 (read@1.0.5) ├── bower-json@0.4.0 (intersect@0.0.3, deep-extend@0.2.11, graceful-fs@2.0.3) ├── chalk@1.0.0 (escape-string-regexp@1.0.3, ansi-styles@2.0.1, supports-colo r@1.3.1, strip-ansi@2.0.1, has-ansi@1.0.3) ├── github@0.2.4 (mime@1.3.4) ├── shell-quote@1.4.3 (array-map@0.0.0, array-reduce@0.0.0, array-filter@0.0. 1, jsonify@0.0.0) ├── which@1.1.1 (is-absolute@0.1.7) ├── handlebars@2.0.0 (uglify-js@2.3.6, optimist@0.3.7) ├── cardinal@0.4.4 (ansicolors@0.2.1, redeyed@0.4.4) ├── bower-config@0.6.1 (osenv@0.0.3, graceful-fs@2.0.3, mout@0.9.1, optimist@ 0.6.1) ├── tar-fs@1.5.0 (pump@1.0.0, tar-stream@1.1.4) ├── decompress-zip@0.1.0 (mkpath@0.1.0, touch@0.0.3, binary@0.3.0, readable-s tream@1.1.13) ├── insight@0.5.3 (object-assign@2.0.0, async@0.9.0, lodash.debounce@3.0.3, o s-name@1.0.3, tough-cookie@0.12.1) ├── bower-registry-client@0.3.0 (graceful-fs@2.0.3, request-replay@0.2.0, rim raf@2.2.8, lru-cache@2.3.1, mkdirp@0.3.5, async@0.2.10, request@2.51.0) ├── request@2.53.0 (caseless@0.9.0, json-stringify-safe@5.0.0, aws-sign2@0.5. 0, forever-agent@0.5.2, stringstream@0.0.4, oauth-sign@0.6.0, tunnel-agent@0.4.0 , isstream@0.1.2, node-uuid@1.4.3, qs@2.3.3, combined-stream@0.0.7, form-data@0. 2.0, mime-types@2.0.11, tough-cookie@1.1.0, http-signature@0.10.1, bl@0.9.4, haw k@2.3.1) ├── configstore@0.3.2 (object-assign@2.0.0, xdg-basedir@1.0.1, osenv@0.1.0, u uid@2.0.1, js-yaml@3.3.1) ├── inquirer@0.8.0 (figures@1.3.5, ansi-regex@1.1.1, mute-stream@0.0.4, throu gh@2.3.7, readline2@0.1.1, chalk@0.5.1, lodash@2.4.2, rx@2.5.2, cli-color@0.3.3) ├── fstream-ignore@1.0.2 (inherits@2.0.1, minimatch@2.0.7) ├── glob@4.5.3 (inherits@2.0.1, once@1.3.2, inflight@1.0.4, minimatch@2.0.7) └── update-notifier@0.3.2 (is-npm@1.0.0, string-length@1.0.0, semver-diff@2.0 .0, latest-version@1.0.0)
安装browser-sync js模块:(用于与gulp结合使用,开启web服务,供浏览器访问页面)
$ npm install browser-sync --save-dev npm WARN package.json testapp@1.0.0 No repository field. npm WARN package.json testapp@1.0.0 No README data npm WARN optional dep failed, continuing fsevents@0.3.6 \ > ws@0.5.0 install e:\cordova_workspace\TestApp\node_modules\browser-sync\node_m odules\socket.io\node_modules\engine.io\node_modules\ws > (node-gyp rebuild 2> builderror.log) || (exit 0) | e:\cordova_workspace\TestApp\node_modules\browser-sync\node_modules\socket.io\no de_modules\engine.io\node_modules\ws>if not defined npm_config_node_gyp (node "c :\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\nod e-gyp\bin\node-gyp.js" rebuild ) else (rebuild) / > ws@0.4.31 install e:\cordova_workspace\TestApp\node_modules\browser-sync\node_ modules\socket.io\node_modules\socket.io-client\node_modules\engine.io-client\no de_modules\ws > (node-gyp rebuild 2> builderror.log) || (exit 0) e:\cordova_workspace\TestApp\node_modules\browser-sync\node_modules\socket.io\no de_modules\socket.io-client\node_modules\engine.io-client\node_modules\ws>if not defined npm_config_node_gyp (node "c:\Program Files\nodejs\node_modules\npm\bin \node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (reb uild) browser-sync@2.7.1 node_modules\browser-sync ├── async-each-series@0.1.1 ├── query-string@1.0.1 ├── emitter-steward@0.0.1 ├── opn@1.0.2 ├── dev-ip@1.0.1 ├── ua-parser-js@0.7.7 ├── browser-sync-client@2.0.2 ├── immutable@3.7.2 ├── portscanner@1.0.0 (async@0.1.15) ├── easy-extender@2.3.1 (lodash@2.4.2) ├── connect@3.3.5 (utils-merge@1.0.0, parseurl@1.3.0, debug@2.1.3, finalhandl er@0.3.4) ├── lodash@3.8.0 ├── serve-index@1.6.4 (escape-html@1.0.1, parseurl@1.3.0, batch@0.5.2, debug@ 2.2.0, mime-types@2.0.11, http-errors@1.3.1, accepts@1.2.7) ├── resp-modifier@2.0.1 (minimatch@2.0.7) ├── serve-static@1.9.2 (utils-merge@1.0.0, escape-html@1.0.1, parseurl@1.3.0, send@0.12.2) ├── chokidar@1.0.1 (is-glob@1.1.3, arrify@1.0.0, glob-parent@1.2.0, async-eac h@0.1.6, is-binary-path@1.0.0, readdirp@1.3.0) ├── localtunnel@1.5.0 (debug@0.7.4, request@2.11.4, optimist@0.3.4) ├── anymatch@1.3.0 (arrify@1.0.0, micromatch@2.1.6) ├── foxy@10.1.2 (cookie@0.1.2, http-proxy@1.11.1) ├── eazy-logger@2.1.2 (opt-merger@1.1.0, tfunk@3.0.1) ├── meow@3.1.0 (object-assign@2.0.0, minimist@1.1.1, camelcase-keys@1.0.0, in dent-string@1.2.1) ├── browser-sync-ui@0.5.8 (connect-history-api-fallback@0.0.5, angular-saniti ze@1.3.15, angular-route@1.3.15, angular-touch@1.3.15, angular@1.3.15, stream-th rottle@0.1.3, weinre@2.0.0-pre-I0Z7U9OV) └── socket.io@1.3.5 (debug@2.1.0, has-binary-data@0.1.3, socket.io-parser@2.2 .4, socket.io-adapter@0.3.1, engine.io@1.5.1, socket.io-client@1.3.5)
在项目目录下有gulpfile.js,是gulp运行时的配置文件,打开该文件添加:
var browserSync = require('browser-sync'); // Start the server gulp.task('browser-sync', function() { browserSync({ server: { baseDir: "./www" //web服务的根 }, port:3000 //web服务的端口 }); }); // Reload all Browsers gulp.task('bs-reload', function () { browserSync.reload(); }); var files = [ './www/*.html', './www/img/**/*.*', './www/views/**/*.html', './www/js/**/*.js', './www/css/**/*.css' ]; // Watch scss AND html files, doing different things with each. gulp.task('server', ['browser-sync'], function () { gulp.watch(files, ['bs-reload']);//检测文件,如有变化自动更新浏览器的显示 });
相关推荐
windows 下 ionic3 创建ionic1 项目 并添加android 平台 附添加插件的方法
近期因为ionic3升级到ionic4,官方调整的原因,无法用命令创建ionic项目,此方案可完美解决问题
主要介绍Ionic如何创建APP项目的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
本文档是ionic开发混合app步骤,到打包发布app的过程,适合学习ionic开发的朋友们使用。
本文中的代码已经在文中全部出现过了,为什么还需要一个下载币呢,是因为我的下载币不够用了额,下载其他大神的代码,需要,所以请赞助一下吧。当然你不想赞助的话,你可以在文章中一个一个的copy,绝对的一模一样,...
Ionic 是完全基于谷歌的 Angular 框架,在 Angular 基础上面做了一些封装,让我们可以更快速和容易的开发移动的项目。Ionic 调用原生的功能是基于 Cordova,Cordova 提供了使用JavaScript 调用 Native 功能,ionic ...
ionic项目脚手架. 开发环境搭建 使用做为项目构建工具. 1.安装nodeJs. 2.执行以下命令,安装相关开发工具包: $ npm i -g fis-zoo fis-postpackager-simple fis-parser-less fis-parser-sass ionic cordova gulp ...
3. 创建项目: ionic start myApp tabs 4. cd 到刚才创建的项目 5. ionic serve 运行项目 Blank tabs sidemenu IONIC中调试APP: 为chrome浏览器添加以下的定义: --disable-web-security --user-data-dir...
这样在执行`ionic serve`命令时,先执行gulp开发构建,输出到dist目录,ionic 监测dist目录,并在dist目录上创建web服务。 - 构建的版本设定:根目录下config文件夹内分别有开发构建和发布构建两个json文件,修改...
cordova + ionic 创建的android版app,使用Strophe.js 实现xmpp客户端,实现了即时通讯聊天功能,服务端为openfire,需要自行搭建,应用可以实现账户登录,添加好友,聊天功能
## Synopsis一个简单的IOT项目,使用Ionic Framework创建一个简单的应用程序,该应用程序打开连接到Raspberry Pi的面包板上的LED。 ##动机在我了解了如何使用Node.js与Raspberry Pi GPIO引脚进行交互之后,我决定...
我们建议使用ionic实用程序创建基于该项目但使用现成的入门模板的新Ionic项目。 例如,要使用默认选项卡界面启动新的Ionic项目,请确保已安装ionic实用程序: $ sudo npm install -g ionic 然后运行: $ sudo ...
本文介绍了H5的开发框架Ionic的基本概念,和cordova、Angular.js的关系和版本,Ionic的入门介绍,如何安装环境,创建一个h5项目,并且编译打包,安装到手机或模拟器运行,以及学习资源、ionic一体化开发工具ionic...
我们建议使用ionic实用程序创建基于此项目但使用现成的入门模板的新 Ionic 项目。 例如,要使用默认选项卡界面启动一个新的 Ionic 项目,请确保已安装ionic实用程序: $ sudo npm install -g ionic 然后运行: $...
我们建议使用ionic实用程序创建基于此项目但使用现成的入门模板的新 Ionic 项目。 例如,要使用默认选项卡界面启动一个新的 Ionic 项目,请确保已安装ionic实用程序: $ sudo npm install -g ionic 然后运行: $...
离子代码笔部署这是一个很小的 shell 脚本,用于下载 Ionic codepen 项目并从中创建 Ionic 应用程序。 ** 仅限 Mac/Linux ** 此外,此脚本假设您已经安装了 Ionic、Cordova、Android、ant、Xcode 和 npm 库要...
ionic 技术的依赖环境、技术支持、环境搭建、运行原理、项目创建
前面的章节中我们已经学会了 ionic 框架如何导入到项目中。 接下来我们将为大家介绍如何创建一个 ionic APP 应用。 ionic 创建 APP 使用 HTML、CSS 和 Javascript 来构建,所以我们可以创建一个 www 目录,并在目录...
我们建议使用ionic实用程序创建基于此项目但使用现成的入门模板的新 Ionic 项目。 例如,要使用默认选项卡界面启动一个新的 Ionic 项目,请确保已安装ionic实用程序: $ sudo npm install -g ionic 然后运行: $...