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

20.0.0

24 Dec 10:56
Compare
Choose a tag to compare

This release was originally scheduled a couple of weeks ago... yet, now I can call it a christmas present 🎄 !

Once again, a couple of breaking changes are included. For instructions on how to migrate from version 19, see the migration guide. Please feel free to open an issue if anything in that guide is not clear enough!

The most notable changes:

  • Angular is now included in v7 (even though it does not yet include the ivy compiler by default)
  • The migration to webpack-serve in v19 was reverted, since the maintenance status of that project and webpack-dev-server toggled since then.
  • webpack-chain replaces webpack-merge for building the configuration.
  • Linting is now available as a separate task that also includes auto-fixing.

The docs received some updates to reflect the most recent changes as well as some deprecated references. Please take a closer look at them to make sure you don't miss anything useful!

For the full set of changes, see the diff: 19.1.1...20.0.0

19.1.1

08 Sep 11:13
Compare
Choose a tag to compare

A small bugfixes release for the file size diff feature introduced in 19.1.0.
Properly comparing the file paths provided by webpack with those picked up from via glob might contain different path separators on windows, thus they have to be normalized accordingly. The fixed version handles both.

19.1.0...19.1.1

19.1.0

07 Sep 07:50
Compare
Choose a tag to compare

A minor release this time.
Some greater changes are planned and deferred for the next major release, so I decided to put this release before.

Full set of changes can be viewed here:
19.0.0...19.1.0

Overview

Features

  • uglify-es was replaced with terser, resp. their corresponding webpack plugins. uglify-es is no longer maintained, i.e. the bugs it still contains won't be fixed. terser is a maintained fork. Regarding this issue, a similar change will be adopted to the webpack core itself.
    In addition, the cache and parallel flags have been enabled by default, since they are much more stable on terser, and improve build performance by quite a margin.
  • The previously experimental flag withExperimentalCssOptimization was removed. Its underlying instability was fixed by moving to a different plugin for CSS optimization, optimize-cssnano-plugin. I.e. this optimization is now always active.
  • The post-build file size information was extended to also show file size differences, including a indicator for positive/negative/no changes. Note that by default, this is only active for js, css, json and webmanifest files, since others are quite irrelevant. If you think different, feel free to update the regex and glob here: https://github.com/DorianGrey/ng-webpack-template/blob/master/scripts/util/determineFileSizesBeforeBuild.js

Fixes

README adoption

I recognized that the README did not reflect every change made in the 19.0.0 release. This was fixed.

Updates

The most notable minor updates refer to angular (now at 6.1.7) and rxjs (now at 6.3.2). All others are either minor or should have no effect on the project (e.g. major update dropping support for node v6, which isn't supported at all by this project).

19.0.0

19 Jul 07:42
Compare
Choose a tag to compare

It's been quite a while now since the last release ... took me a while to glue all of this together. This release contains a huge set of changes, some of them are breaking.

Full set of changes can be viewed here:
18.0.0...19.0.0

Overview

Tools

  • Webpack was updated to V4
    • As a result, the long term caching option was dropped - it can no longer be disabled.
    • Note that all plugins affected by this update have been updated as well.
    • A new build config option withExperimentalCssOptimization was added to apply additional stylesheet optimizations using cssnano. Note that this might break your overall style under certain conditions, so it is disabled by default (it also breaks the example app due to a curious "optimization" for grid layouts).
    • hard-source-webpack-plugin was added to improve rebuild speed even further than it already was. Causes the initial build to be a bit slower, but successive build have been at least 10% faster in my tests, so it should be worth it.
    • The workbox plugin has been changed to import itself from CDN instead of local, since I was facing some issues about the script loading all of its modules even though only a few are referenced, which causes problems by the google-analytics plugin being blocked from my browser.
  • A VSCode extension recommendation file for tslint and stylelint was added.
  • A new longer in form of signale replaces the former custom implementation. It covers most of the library output (like from the fork-ts-checker plugin) was well.

App

  • Angular was updated to V6
  • RxJS was updated to V6

CI

Travis and AppVeyor are now using node 10 instead of 9 for testing. V10 will become LTS and the end of 2018, thus it's viable to test it quite early, and drop V9 which won't become a LTS version.

Other stuff

  • mainfest.json was renamed to manifest.webmanifest to match the extension mentioned by the standard.
  • A lot of code simplification by using async/await instead of raw promises.
  • The browserlist used by autoprefixer has been moved to the package.json and was adjusted to:
"browserslist": [
    ">0.25%",
    "not ie 11",
    "not op_mini all"
  ]

which provides a global coverage of 86.67%. See: http://browserl.ist/?q=%3E0.25%25%2Cnot+ie+11%2Cnot+op_mini+all

Migration

See the migration guide for details about updating your application and configuration: https://github.com/DorianGrey/ng-webpack-template/blob/master/docs/migration/MIGRATION__19_0_0.md

18.0.0

14 Mar 11:08
Compare
Choose a tag to compare

Among with a couple of minor dependency updates, this release includes an already announced breaking change regarding the unit test setup.

See the full set of changes here:
17.1.0...18.0.0

Unit testing

As previously announced in #13, I've decided to replace the previous karma based approach for unit tests with jest - see the ticket for reasons why. The docs have been updated accordingly to reflect the new capabilities.
https://github.com/DorianGrey/ng-webpack-template#unit
See the migration guide for instructions on how to migrate your project to jest.
https://github.com/DorianGrey/ng-webpack-template/blob/master/docs/migration/MIGRATION__18_0_0.md
Oh, and don't worry about the .babelrc in the project's root directory - it is required to properly transpile lodash-es, since it includes ES2015 module definitions.

Example layout

The application's example layout has been updated to use a grid-based layout (i.e. display: grid) and a sidenav for the navigation. As a result, it fits better on small screens. This is mostly for illustration purposes.

17.1.0

06 Mar 07:33
Compare
Choose a tag to compare

Only a minor release this time, since all major changes in the updates are not affecting the current setup.

A list of the most notable changes is listed below. See the full list of changes in the diff:
17.0.0...17.1.0

Behavior changes

The build optimizer is now activated by default for production builds. Just change the corresponding config if you don't want or like this; it has just been activated by default since it should be considered stable enough to do so.

17.0.0

26 Jan 08:26
Compare
Choose a tag to compare

Another major one, but this time not only due to dependency updates.

A list of the most notable changes is listed below. See the full list of changes in the diff:
16.0.0...17.0.0

Libraries

  • angular was updated to 5.2.2. Just a minor release, so this should not break anything.
  • ngrx was updated to 5.0.1. This is only a major release because the minimal rxjs version was increased to 5.5. This should not break anything in terms of this template, since a matching version was already used before.
    Note that I've had to change the import order of the @ngrx/store related modules due to an issue with the store instrumentation - see here.

Other dependencies

electron was updated to 1.7.11.
❗ I've received a notification that older versions contain a security-critical bug, so this update should not be reverted or omitted!

Behavior changes

Chunk naming

Code splitting using @angular/router does not allow to explicitly provide a name for the particular chunks - as a result, they only get an ID by default. From this release on, those chunks will receive the name of entry file referenced for the splitting process.

rxjs tree-shaking

I've added the path mapping of rxjs as described in the docs to provide better tree-shaking for its imports. This reduces the bundle size quite significantly.

runtime extraction

For production builds, webpack now extracts its whole runtime instead of only the manifest. This is favorable for long term caching.

Service worker revisions

I've faced some bugs regarding the service worker caching that at most appeared when not enough hashing digits have been used. To work around this issue, the revision ID generated by workbox is no longer removed from the generated service worker file. The size increase of the service worker file should be negligible.

Other changes

CI

As already announced a while ago, this template only supports LTS versions of node. The CI configurations have been modified to no longer test against node versions < 8.

16.0.0

11 Dec 07:56
Compare
Choose a tag to compare

Another major release, since at least one dependency pushed a major release as well...

A list of the most notable changes is listed below. See the full list of changes in the diff: 15.0.0...16.0.0

Libraries

Angular

Updated to 5.1.0. See the changelog and the corresponding blog entry for details.

@ngx-translate/core

Updated to 9.0.1. The build system was updated, which causes peer dependencies of rxjs >= 5.5.2 and angular 5.0, which is a breaking change regarding its previous versions. See the changelog for details.

Others

Webpack

Update to 3.10.0. See the change documentation for 3.9 and 3.10 for details:
https://github.com/webpack/webpack/releases/tag/v3.9.0
https://github.com/webpack/webpack/releases/tag/v3.10.0

Prettier

Updated to 1.9.1. Improves typescript formatting a lot, so I'd recommend to run the format task to adopt these to your project.

15.0.0

10 Nov 07:35
Compare
Choose a tag to compare

A bunch of breaking releases this time ...

Libraries

Angular

Updated to the most recent 5.0.1. Please have a look at the release announcement of version 5 to get an overview of what is new and what has changed.
Note: The build optimizer is currently not active by default, i.e. you still have to use the build:bo task resp. the --use-build-optimizer CLI option.

Rxjs

Rxjs was updated to 5.5.2. The most notable new feature are the lettable operator, which will help in using less global operator imports and building your own rxjs compatible operators.
For other changes, take a look at the project's changelog.

TypeScript

TypeScript dependency got updated to 2.6.1. See the release announcement to get an overview of the fixes and breaking changes.
Note: Angular requires TypeScript 2.4, and has no been tested thoroughly with more recent versions. Most things will work, but there might be some cases where it doesn't, so you might need to drop this dependency version.

Others

Node.js

As already announced in an issue, from this release on, only node.js >= 8.9 will be officially supported. The .nvmrc is already adopted properly. Currently, there are no features that won't work in node.js 6, and the CI is still executed for this version. However, both will change sooner or later.

Prettier

Prettier got updated to 1.8.2. Please have a look at the release information to get an overview of what has changed. Source code already got formatted with this version.

14.1.0

10 Oct 12:30
Compare
Choose a tag to compare

Just a minor update that comes with several dependencies bumped to most recent or at least most recent stable version. The full diff can be viewed here.

Most notable updates:

lodash-es

The typings for this package have been sticked to 4.14.6. 4.14.7 seems to import several things from lodash that are absent, and thus causes build time errors.

workboxjs

The now required version 2.1.0 includes an important bugfix. See the release notes for details.