gulp-ionic-webbuild
Add-on Gulp tasks to optimise an Ionic project for mobile web deployment.
Installation
From your Ionic project directory, run:
npm i --save-dev gulp-ionic-webbuild
Next, at the bottom of your gulpfile.js
, add the following:
gulp templatesModule: 'templates';
Note: the templatesModule
value is the name of the Angular module to which the compiled templates will be added (this defaults to "templates"). It's very important that this matches the name of an Angular module included in your app, otherwise things will break in spectacular fashion!
Finally, add special "marker" comments to the <head>
section of your www/index.html
file. These comments will inject your compiled AngularJS templates/partials (using gulp-angular-templatecache) and generate a single optimised JS build file (using gulp-useref and gulp-uglify).
... <!-- compiled css output --> <!-- build:js({www,www-dist/partials}) js/app.build.js --> <!-- ionic/angularjs js --> <!-- cordova script (this will be a 404 during development) --> <!-- bower deps --> <!-- your app's js --> <!-- inject:partials --> <!-- endinject --> <!-- endbuild -->...
The important bits to notice here are:
<!-- build:js({www,www-dist/partials}) js/app.build.js -->
This marks the starting point from which files will be included in the JS build.
<!-- inject:partials --><!-- endinject -->
This is where your compiled templates will be injected into the file. Since this will be a JS file, it will also be included in the final build.
<!-- endbuild -->
This denotes the end point for files to be included in the JS build.
Usage
Simply run your new Gulp task from your Ionic project directory:
gulp build-web
Your compiled web build can now be found in the www-dist
folder. You can test it out using a web server of your choice, e.g.:
npm i -g http-serverhttp-server www-dist