1.0.0 (2017-01-06)
Execute the following command from your ionic project. This installs a new peer dependency called sw-toolbox
that is used to simplify implementing a service-worker.
npm install sw-toolbox --save --save-exact
- build: check to ensure tsconfig contains sourcemaps true. (e6bcf22)
- config: resolve any inputs that could be paths to absolute paths (50876eb)
- copy: check for null object and src/dest (eabd125)
- ngc: revert change to purge decorators (Angular CLI did too) (8aae85c)
- webpack: update environment plugin for webpack 2 RC3 (be3aac1)
- websockets: fix exception when no ws clients connected during rebuild (#616) (8685bf8)
0.0.48 (2016-12-19)
@ionic/app-scripts
version 0.0.47
had some breaking changes so please make sure you have performed those upgrade instructions.
- diagnostics: fix null pointers (72adc86)
- inline-templates: check for existence of content (#557) (b68e125)
- logging: don't log msgs about websocket state (18185fb)
- optimization: stop removing decorators (45b0255)
- serve: find an open port for the notification server if port is used. (d6de413)
- copy: generate project context if it doesn't exist (26f6db8)
0.0.47 (2016-12-12)
Install the latest ionic cli. sudo
may be required depending upon your npm
set-up.
npm install -g ionic@latest
Delete main.dev.ts
and main.prod.ts
and create a main.ts
file with the following content:
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
All builds are now development (non-AoT) builds by default. This allows for a better development experience when testing on a device. To get started, please follow the steps below.
Make sure the scripts
section of package.json
looks like this:
"scripts": {
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
}
ionic run android --prod
will do a production build that utilizes AoT compiling and minifaction.
ionic emulate ios --prod
will do a production build that utilizes AoT compiling and minifaction.
ionic run android
will do a development build
ionic emulate ios
will do a development build
If you wish to run AoT but disable minifaction, do the following
ionic run android --aot
ionic emulate ios --aot
Change ionic_source_map
to ionic_source_map_type
in package.json if it is overridden.
There were significant improvements/changes to most configs. Please review the changes and make sure any custom configs are up to date.
Verify that tsconfig.json
is up to date with recommended settings:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
"dom",
"es2015"
],
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"target": "es5"
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules"
],
"compileOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
main.dev.ts
andmain.prod.ts
have been deprecated in favor ofmain.ts
with the content ofmain.dev.ts
. The content ofmain.ts
will be optimized at build time for production builds.- Builds are now always development (non-AoT) by default. To enable
prod
builds, use the--prod
option. copy.config
andwatch.config
have breaking changes moving to an easier-to-extend configuration style.copy.config
usesnode-glob
instead offs-extra
to do the copy. Migrate from directory/files to globs in any custom configs.ionic_source_map
configuration has been changed toionic_source_map_type
.- Source maps now use
source-map
devtool option by default instead ofeval
. Changeionic_source_map_type
option to return to the faster buildingeval
.
- AoT: dynamically enable prod mode for AoT builds (0594803)
- AoT: use in-memory data store instead of .tmp directory for AoT codegen (93106ff)
- build: every build should run clean sync and copy async. (6d4eb6e)
- copy: Resolve race condition in copy task, move to glob config (cc99a73)
- lab: add lab to files (f42c980)
- livereload: livereload now correctly serves cordova plugins on run and emulate. (a0c3f5d)
- livereload: on project build all pages connected should reload. (#513) (62d6b23)
- livereload: use localhost instead of 0.0.0.0 when injecting live reload script (#450) (7f8a0c3)
- logging: remove unnecessary websocket error msg, clean up copy error msg (1517b06)
- ngc: simpler AoT error reporting (1b0f163)
- serve: add flag to indicate to serve for a cordova app (93782e7)
- source-maps: use detailed source-map as default, fix windows path issue (19464b3)
- workers: generate context in worker threads (af036ec)
- build: replace --dev flag with --prod and add flags --aot, --minifyJs, --minifyCss, --optimizeJs (99922ce)
- bundle: pre and post bundle hooks (4835550)
- copy: update copy config to move web workers (a909fc4)
- lab: fresh coat of paint (edb6f09)
- replacePathVars: support interpolation of objects and arrays (#449) (e039d46)
- all arguments passed should be compared as case insensitive (085c897)
0.0.46 (2016-11-21)
- build: better support for saving multiple files at a time (254bb6c)
- copy: ionicons copied from ionicons (69f89a8)
- errors: skip HTTP errors (5906167)
- proxies: Wrong parameter in Logger.info, in setupProxies function causing proxies not to load (#395) (316b1de)
- typescript: lock typescript version to 2.0.x for now due to build error with 2.1.x (ef7203b)
- webpack: fix path resolution (97c23f9)
- webpack: reference json-loader to account for webpack breaking change (d6fe709)
- webpack: resolve modules to rootDir (#365) (64eb845)
0.0.45 (2016-11-17)
- errors: runtime error immediately, selectable stack (70f68da)
- inline-templates: update bundle and memory file representation on template change (11a949d)
- rollup: invalidate cache on template change (80c0eb6)
- webpack: invalidate cache by use of timestamps (4d6bbd5)
- run-build-update: handle linked npm modules (#375) (0f113c8)
- serve: add '/ionic-lab' as an alias for the lab html file path. (c319404)
0.0.44 (2016-11-15)
- debug: cmd+shift+8 to show debug menu (a26d729)
- error: (cmd/ctrl)+8 for debug menu (89550af)
- error: add header padding for cordova iOS (5c4c547)
- error: apply correct css for runtime error close (81f1d75)
- error: fix content scrolling (3b82465)
- error: reload immediately after js/html update (07f918e)
- error: safari css fixes (7c2fb59)
- serve: correct paths so that --lab works (1d99a98)
- serve: open browser to localhost (14275c7)
- transpile: normalize and resolve paths always for OS independence (ca6c889)
- watch: fallback for when chokidar watch ready/error don't fire (happens on windows when file is (519cd7f), closes #282
- watch: watch now ignores Mac OS meta data files (02d0b8d), closes #331
- webpack: source maps link to original src for ide debugging (39edd2e)
- debug: debug menu options (53d6e30)
- debug: shake device to show debug menu (770f4e3)
- error: client runtime error reporting (fc40b92)
- error: syntax and error highlighting (8836310)
0.0.43 (2016-11-10)
- rollup: removing rollup metadata prefix for paths (350a288)
- watch: remove shorthand arg for watch (0685c0b), closes #290
- webpack: typo in import, close #326 (#341) (6b89fa2)
0.0.42 (2016-11-09)
To use this version of @ionic/app-scripts
, follow these steps to upgrade:
- Install the latest version of the ionic cli
npm install ionic@latest -g
Note: sudo may be required depending on your workstation set-up
- Update the project's
package.json
file'sscript
section to look like this:
...
"scripts" : {
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
}
...
Note: This is removing several deprecated Ionic scripts. If you have any of your own custom scripts, don't remove them.
- Install the latest version of
@ionic/app-scripts
npm install @ionic/app-scripts@latest --save-dev
- bundling: execute bundle updates if full bundle has completed at least once (fbe56dc)
- sass: remove broken sass caching (91faf0b)
- error: use datauri for favicon build status (892cf4a)
- errors: overlay build errors during development (87f7648)
0.0.41 (2016-11-07)
- webpack: use source-maps instead of eval for prod builds (fdd86be)
ionic_source_map
variable is now used to drive the devtool
(sourcemap) value for webpack. It now defaults to eval
for faster builds. Set it to source-map
for typescript
sourcemaps.
- sourcemaps: fix source maps for all files (066de6d)
- sourcemaps: webpack .ts sourcemaps (bfca1be)
- webpack: modify config to use IONIC_APP_SCRIPTS_DIR variable (2b7c606)
- events: emit bundler events (8d73da9)
- exports: add templateUpdate and fullBuildUpdate (a31897d)
- webpack source maps: make it easy to configure source map type (03565b7)
- webpack: speed up webpack build by not using file-system and watches (23ad195)
- Switch default bundler to Webpack
- Fix handling multiple async template updates
- Fix resolving index files correctly
- Fix template rebuilds for multiple templates in one file
- Fix ability to watchers to ignore paths
- Fix silently failed bundles
- Fix template path resolving issues
- Improve build times for template changes
- Fix bundle updates on template changes
- Fix Windows entry path normalization
- Add ability use multiple processor cores for various subtasks
- Use typescript
createProgram
to transpile entire app - Add syntax highlighting and colors to typescript, sass and tslint errors
- Improved error messages for typescript errors
clean
task only cleans out thewww/build/
directory rather than all ofwww/
- Add task to copy
src/service-worker.js
towww/service-worker.js
- Add task to copy
src/manifest.json
towww/manifest.json
- Fix JS source maps
- Fix template inlining
- Addressed memory usage error
- Dev builds no longer use the
.tmp
directory - Dev build entry files should be the source
main.dev.ts
file - Custom rollup configs should remove the
ngTemplate()
plugin