Skip to content
This repository has been archived by the owner on Dec 30, 2019. It is now read-only.

Releases: DorianGrey/ng-webpack-template

14.0.0 "service worker"

26 Sep 06:58
Compare
Choose a tag to compare

I've decided to make this a major release instead of a minor one, since the default build and runtime behavior was changed, which might be breaking for some setups, although it's only an addition technically.

Service worker

As a new PWA capability, this release will now always generate a service worker and utilize it if possible. I've set up a particular doc that explains its setup, how it is used and how you might adopt it to your particular requirements:
https://github.com/DorianGrey/ng-webpack-template/blob/master/docs/service_worker.md
Please file an issue if you are facing any problems.

Lighthouse report

A lighthouse report has been added for both AoT and AoT with build optimizer modes and can be found in this directory in both HTML and JSON format:
https://github.com/DorianGrey/ng-webpack-template/tree/master/lighthouse-report
The recently added PWA features improved the ratings a lot, even though there is still room for optimization.

Notable dependency updates

  • Angular has been updated to ^4.4.3. This should have any reasonable impact on exisiting code. The changelog can be found here.
  • Prettier has been updated to ^1.7.0. This might result in slightly different formatting of your code. Please take a look at the particular release notes: https://github.com/prettier/prettier/releases/tag/1.7.0
  • Electron was sticked to 1.7.8 for the moment. During development, I updated it to ^1.8.0, however there does not seem to be a download attached to this release any longer, so CI failed recently.

13.0.0 "Usability rework"

01 Sep 07:46
Compare
Choose a tag to compare

Another major release, this time because of a lot of changes to the usability of this project regarding development and production mode.
The particular changes have been listed in a separate migration document:
https://github.com/DorianGrey/ng-webpack-template/blob/master/MIGRATION.md
In addition, you might want to take a look at the description of the intended changes here: #7
PWA abilities did not make it into this release completely, esp. the service worker still takes a bit of work for proper integration and thus is not yet included.

Additional changes

Browser for test execution changed

The browser for unit test execution was changed to Electron, instead of PhantomJS. The latter does not seem to be any longer actively maintained. I've checked out using Chrome in headless mode, but since this requires a bit more setup, I decided to go with Electron for the moment. Note that refering to the issue above, I'm still considering to switch to jest in this project once it is more thoroughly tested for more complex angular application.
If you face any problems with it, check out the troubleshooting guide.

Relevant dependency updates (changes >= minor level)

prettier

Prettier was updated to 1.6.1, and received several changes and optimizations in 1.6.0 that affect the way it formats code. See the release notes for details.

TypeScript

This release includes the most recent typescript version 2.5.2. That version does not include breaking changes, so it should not break any of your code. See the release announcement for details.

Other technical changes

  • The engine restrictions have been updated to:
    • npm: >=5
    • yarn: >=0.27
  • In preparation of the move to node.js 8.x once it becomes LTS (currently scheduled for october 2017), builds and unit test are now executed for both node.js 6 and 8 on the CI.

12.0.0

18 Aug 07:19
Compare
Choose a tag to compare

Another major release, most notably due to the ngrx-update.

ngrx

The ngrx libraries have been updated to version 4. This includes some breaking changes - see the official migration guide:
https://github.com/ngrx/platform/blob/master/MIGRATION.md
This repo's migration commit might be useful as well: 200cb00
Note that the actions have to be changed to use more type-safe versions, as illustrated and recommended in the ngrx example app. As a result, all ActionCreator helpers have been removed, since they no longer useful. The docs have been updated accordingly.
When updating, you will receive a warning about a non-matching peer-dependency from ngrx-store-freeze. For the moment, you might safely ignore it.

Another note about the router of the store: This values inside are stripped down from the whole snapshot using this serializer:
https://github.com/DorianGrey/ng-webpack-template/blob/e7b01a5793ba250e9d84cca3ef8d64c7e9fcabfe/src/app/app.store.ts#L98
Cutting this down was required to get both the dev-tools and the store-freeze ability working, but that should not have any negative effect on everything else. Most of the values referenced by the snapshot are related to the rendered view and things linked to it. Feel free to adjust this serializer to your particular requirements, but test it thoroughly.

Other changes

  • Commits are now tested on appveyor in addition to travis to make sure that everything works fine on Windows.
  • Bumped all dependencies to most recent versions.

11.1.0

11 Aug 07:52
Compare
Choose a tag to compare

Only a minor update this time.

Most notable updates

Other notable changes

rxjs version got sticked to 5.4.2, since the most recent 5.4.3 seems to cause problems with currently used ngrx version. Seems it's possible to be fixed once I can merge #5 to bump ngrx to 4.x.

11.0.0

03 Aug 08:50
Compare
Choose a tag to compare

ngrx 4.0

This is not included yet, since there are some issues regarding the freeze mode and the tools, both of which are used in development. See the PR for the current progress: #5

stylelint 8.0

A major change that broke some things, e.g. by removing or renaming some rule. Took this major change as a chance to add more rules to the set, namely the standard config and an additional set specifically for scss. These are used as mentioned below:

  • stylelint: 8.0.0
  • stylelint-config-standard: 17.0.0
  • stylelint-scss: 1.5.1

angular 4.3

Angular was bumped to 4.3.x (4.3.3 atm.).

webpack 3.4

Webpack was updated to 3.4.1 - see their release notes for details:
https://github.com/webpack/webpack/releases/tag/v3.4.0
https://github.com/webpack/webpack/releases/tag/v3.4.1

ChangeDetectionStrategy.OnPush

All components are now using ChangeDetectionStrategy.OnPush for change detection. This does not break the demo components.

ngo => bo

The optimizer previously named ngo is now officially contained as build-optimizer in the angular_devkit. I've updated the task names to reflect this renaming. Note that this tool is still in experimental state.

karma-remap-istanbul

Instead of karma-remap-coverage, we're now using karma-remap-istanbul, since the first one does not seem to be maintained any longer. Besides, the latter seems to generate more precise coverage reports.
This should not have any impact on your project. Just note that we've added two more reporters for formats that are widely used in several CI environments:

  • lcovonly: Creates a lcov report at test-results/coverage/lcov.info
  • cobertura: Creates a cobertura report at test-results/coverage/coverage.xml

Other stuff

  • Several docs have been cleaned up.
  • The node version referenced in the provided .nvmrc was bumped to 6.11.1.

10.0.0

14 Jul 07:37
Compare
Choose a tag to compare

Another major release with several updates.
In most cases, these should negatively affect your project, or break too many things at once.

An overview of this release's main features/updates:

TypeScript 2.4

See
https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#typescript-24
https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#typescript-24
for details. It almost any case, this should not cause any breaking changes to your project, except in case you've been too relaxed when using generics, since this version increases the type-checking for them.

Webpack 3.2

Again, this shouldn't be a breaking change for your project, except in case you were using deprecated features that got wiped out in this release.
The support for scope hoisting with the new ModuleConcatenationPlugin is integrated in production builds. See the official announcement for details:
https://medium.com/webpack/webpack-3-official-release-15fd2dd8f07b

Ngo

This release added build versions that are utilizing ngo for optimizing the production bundle's size, esp. the vendor bundle. In case of this template, it decreased the vendor bundle's size by more than 50KB (minified). Since it adds some code to optimize minification via UglifyJs, this build option does notwork in conjunction with the closure compiler.
Beware: Since ngo is still in an experimental state, the whole feature should be considered experimental as well.

Webpack bundle analyzer

The bundle-analyzer is now executed on each production mode build, instead of being a separate task. The results are generated as HTML and JSON to a builtStats folder in the root directory.

TsLint

I've tightend the linter's grip a bit by extending tslint:recommended, and relaxed it via tslint-config-prettier. Just adopt the rules to your particular requirements - the current set is just one I've had good experience with.
A note about the latter extension: It disables any linter rules aiming at code formatting so that they won't interfere with prettier (see next section). If you've got some of these in you config file, make sure to remove them if you don't want tslint and prettier to fight against each other.

Prettier

The template now uses prettier to format the sources and configs. Formatting is automatically applied on each git commit, powered by husky with optimized execution via lint-staged.

9.0.0

19 Jun 13:48
Compare
Choose a tag to compare

Another major release.

However, the only breaking change is introduced by ngx-translate which bumped to 7.0.x. Not sure if that affects anyone, but for the sake of the story, I'll follow this version bump as a major one.

Some additional updates to note:

Application dependencies

  • Angular => 4.2.x

Dev. dependencies

  • TSLint => 5.4.x
  • stylelint => 7.11.x

8.0.1

30 May 07:10
Compare
Choose a tag to compare

Fixes duplicated stylelint output.

8.0.0

29 May 10:35
Compare
Choose a tag to compare

This release contains some breaking changes w.r.t. the used tools. In case you did not modify the build process of your cloned version of this template, these changes should not have any negative impact on your development and build process and should be easy to merge.

ts-loader

This template is now using ts-loader in conjunction with fork-ts-checker-webpack-plugin for both transpilation and linting the typescript code, instead of awesome-typescript-loader and a custom solution for linting.
Using this combination provides enhanced build and rebuild performance, and also includes linter rules which require type-checking with a reasonable performance due to instance sharing.

stylelint-webpack-plugin

This template is now using the stylelint-webpack-plugin in favor of the previously used custom linter process. It's not only easier to maintain, but also provides enhanced output formatting, which not only includes errors, but also deprecation messages from the linter itself.

7.0.0

09 May 06:39
Compare
Choose a tag to compare

Breaking changes

This release includes several potentially breaking changes from various dependencies:

If you customized the corresponding configurations, you should also checks the changelogs of these packages for further information.

New features

The postcss step now utilizes postcss-flexbugs-fixes for automatically fixing common pitfalls and known cross-browser issues with flexbox layouts.

Other updates

Several other packages like the @angular/* packages received at most minor updates, so they should not break anything.