UNPKG

nwb

Version:

A toolkit for React, Preact & Inferno apps, React libraries and other npm modules for the web, with no configuration (until you need it)

713 lines (478 loc) 136 kB
Newer changelogs are available in [the main CHANGES file](CHANGES.md). --- # 0.23.0 / 2018-08-03 ## Breaking Changes - Updated Inferno config for Inferno 5 - `inferno-*` packages (such as `inferno-compat`) work again with Webpack 4 [[#440](https://github.com/insin/nwb/issues/440)] ## Added - Added `prepublishOnly` to react-component and web-module project package.json scripts, which invokes `npm run build` prior to publishing [[#436](https://github.com/insin/nwb/issues/436)] [[hanford][hanford]] - Added [`npm.umd.entry` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#entry-string) to specify a different entry point for the UMD build in npm module projects. Currently, the UMD build requires an entry point which *must* have a `default` export [[#411](https://github.com/insin/nwb/issues/411)] ## Fixed - Always add `CopyPlugin` when [`webpack.copy` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#copy-array--object) is provided [[#431](https://github.com/insin/nwb/issues/431)] - Remove use of object destructuring from render shims - fixes output of quick build commands in IE11 [[#453](https://github.com/insin/nwb/issues/453)] ## Dependencies - autoprefixer: v8.1.0 → [v9.0.2](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md#902) - babel-core: v6.26.0 → [v6.26.3](https://github.com/babel/babel/releases/tag/v6.26.3) - babel-loader: v7.1.4 → [v7.1.5](https://github.com/babel/babel-loader/releases/tag/v7.1.5) - babel-plugin-inferno: v4.0.0 → [v5.0.1](https://github.com/infernojs/babel-plugin-inferno/releases) - babel-plugin-istanbul: v4.1.5 → [v4.1.6](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v4.1.5...v4.1.6) - babel-plugin-transform-decorators-legacy: v1.3.4 → [v1.3.5](https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy/releases/tag/v1.3.5) - chalk: v2.3.2 → [v2.4.1](https://github.com/chalk/chalk/compare/v2.3.0...v2.4.1) - copy-template-dir: v1.3.0 → [v1.4.0](https://github.com/yoshuawuyts/copy-template-dir/releases/tag/v1.4.0) - copy-webpack-plugin: v4.5.1 → [v4.5.2](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md#452-2018-06-26) - css-loader: v0.28.10 → [v1.0.0](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#100-2018-07-06) - detect-port: v1.2.2 → [v1.2.3](https://github.com/node-modules/detect-port/releases) - filesize: v3.6.0 → [v3.6.1](https://github.com/avoidwork/filesize.js/compare/3.6.0...3.6.1) - fs-extra: v6.0.0 → [v7.0.0](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md#700--2018-07-16) - gzip-size: v4.1.0 → [v5.0.0](https://github.com/sindresorhus/gzip-size/compare/v4.1.0...v5.0.0) - dropped Node.js 4 support - html-webpack-plugin: v3.0.6 → [v3.2.0](https://github.com/jantimon/html-webpack-plugin/blob/master/CHANGELOG.md#320-2018-04-03) - inquirer: v5.1.0 → [v6.0.0](https://github.com/SBoudrias/Inquirer.js/releases) - karma: v2.0.0 → [v2.0.5](https://github.com/karma-runner/karma/releases) - karma-coverage: v1.1.1 → [v1.1.2](https://github.com/karma-runner/karma-coverage/blob/master/CHANGELOG.md#112-2018-05-03) - karma-webpack: v2.0.13 → [v3.0.0](https://github.com/webpack-contrib/karma-webpack/blob/master/CHANGELOG.md#300-2018-03-19) - mini-css-extract-plugin v0.2.0 → [v0.4.1](https://github.com/webpack-contrib/mini-css-extract-plugin/releases) - mocha: v5.0.4 → [v5.2.0](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md#520--2018-05-18) - opn: v5.2.0 → [v5.3.0](https://github.com/sindresorhus/opn/compare/v5.2.0...v5.3.0) - ora: v2.0.0 → [v3.0.0](https://github.com/sindresorhus/ora/compare/v2.0.0...v3.0.0) - postcss-loader: v2.1.1 → [v2.1.6](https://github.com/postcss/postcss-loader/blob/master/CHANGELOG.md#216-2018-07-10) - resolve: v1.5.0 → [v1.8.1](https://github.com/browserify/resolve/compare/v1.5.0...v1.8.1) - run-series: v1.1.6 → [v1.1.8](https://github.com/feross/run-series/compare/v1.1.6...v1.1.8) - style-loader: v0.20.2 → [v0.21.0](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md#0210-2018-04-18) - uglifyjs-webpack-plugin: v1.2.3 → [v1.2.7](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/CHANGELOG.md#127-2018-06-25) - webpack: v4.1.1 → [v4.16.4](https://github.com/webpack/webpack/releases) - webpack-dev-middleware: v3.0.1 → [v3.1.3](https://github.com/webpack/webpack-dev-middleware/releases) - webpack-dev-server: v3.1.1 → [v3.1.5](https://github.com/webpack/webpack-dev-server/releases) - webpack-hot-middleware: v2.21.2 → [v2.22.3](https://github.com/glenjamin/webpack-hot-middleware/compare/v2.21.2...v2.22.3) - webpack-merge: v4.1.2 → [v4.1.4](https://github.com/survivejs/webpack-merge/blob/master/CHANGELOG.md#414--2018-08-01) - whatwg-fetch: v2.0.3 → [v2.0.4](https://github.com/github/fetch/releases/tag/v2.0.4) ## Docs - Added [instructions for debugging in VS Code](https://github.com/insin/nwb/blob/master/docs/FAQ.md#how-can-i-debug-using-vs-code-when-running-an-app-with-nwb) to the FAQ [[#445](https://github.com/insin/nwb/issues/445)] - Replaced references to "ES6" with plain old "ES" # 0.22.0 / 2018-03-13 ## Breaking Changes - Node.js 4 is no longer supported; Node.js 6.11.5 is now the minimum required version, as per Webpack 4 [[#400](https://github.com/insin/nwb/issues/400)] - Updated to Webpack 4 - if you were customising your build with `nwb.config.js`, some of the nwb config you depended on may have changed, and the options Webpack accepts may have changed [[#409](https://github.com/insin/nwb/issues/409)] - Webpack's new `mode` option is now set to activate Webpack 4's new defaults, which removes the need for a bunch of manual configuration nwb was doing: - `ModuleConcatenationPlugin` is now automatically enabled in `production` mode instead of being explicitly configured, so nwb's `webpack.hoisting` config has been removed. - `NamedModulesPlugin` is now automatically used in `development` mode instead of being explicitly configured. - Development UMD builds for modules now use `production` mode with minimization disabled, as the new `development` mode defaults are unsuitable for code which will be published to npm. - Webpack's `optimization` options are now used for certain pieces of configuration: - `optimization.noEmitOnErrors` is used instead of `NoEmitOnErrorsPlugin` to prevent emission of assets when using Hot Module Replacement. - UglifyJS is now configured via `optimization.minimize`/`optimization.minimizer` instead of just adding `UglifyJsPlugin` directly to `plugins`. - `CommonsChunkPlugin` has been removed in Webpack 4 - `optimization.runtimeChunk` is now configured to create a `runtime` chunk (which replaces the old `manifest` chunk) and `optimization.splitChunks` is configured to create a `vendor` bundle. - Replaced used of `ExtractTextPlugin` with [`MiniCssExtractPlugin`](https://github.com/webpack-contrib/mini-css-extract-plugin): - Separate CSS files are now created and loaded on-demand for code splits. - Replaced `webpack.extractText` config with [`webpack.extractCSS` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#extractcss-object--boolean) - this is not backwards-compatible, as plugin options differ. - Webpack's default `performance` option size warnings have been disabled (for now). - Updated Inferno config for Inferno 4 - see the [Inferno v4 migration guide](https://github.com/infernojs/inferno/blob/master/docs/v4-migration.md) for breaking changes [[#429](https://github.com/insin/nwb/issues/429)] - `nwb new inferno-app` now asks if you want to install `inferno-compat` as it's no longer a single dependency, defaulting to not installing it. - `nwb new preact-app` now asks if you want to install `preact-compat`, defaulting to not installing it. - Updated to Mocha 5, which dropped support for IE9 and IE10 and fixed some false positives. - Removed support for deprecated `webpack.compat.enzyme`, `webpack.compat.sinon` and `webpack.style = 'old'` config. ## Known Issues - Inferno is currently publishing `.mjs` files to npm, [which is breaking `inferno-*` packages with Webpack 4](https://github.com/infernojs/inferno/issues/1296), so e.g. `inferno-compat` won't work if you want to reuse React components. ## Added - Added an `-f/--force` flag to `nwb new` to accept defaults and skip questions. ## Changed - The dev server's fallback `index.html` serving can now be configured with dot arguments - e.g. pass `--fallback.disableDotRule` if you need to use dots in your path when using the HTML5 History API. - `--no-polyfill` can now be used to disable default polyfills for app projects as well as quick commands. ## Dependencies - autoprefixer: v7.2.5 → [v8.1.0](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md#810) - babel-loader: v7.1.2 → [v7.1.4](https://github.com/babel/babel-loader/releases) - babel-plugin-inferno: v3.3.1 → [v4.0.0](https://github.com/infernojs/babel-plugin-inferno/releases) - case-sensitive-paths-webpack-plugin: v2.1.1 → [v2.1.2](https://github.com/Urthen/case-sensitive-paths-webpack-plugin/blob/master/CHANGELOG.md#v212) - chalk: v2.3.0 → [v2.3.2](https://github.com/chalk/chalk/compare/v2.3.0...v2.3.2) - copy-webpack-plugin: v4.3.1 → [v4.5.1](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md#451-2018-03-09) - cross-spawn: v6.0.4 → [v6.0.5](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md#605-2018-03-02) - css-loader: v0.28.9 → [v0.28.10](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#02810-2018-02-22) - extract-text-webpack-plugin v3.0.0 → [mini-css-extract-plugin v0.2.0](https://github.com/webpack-contrib/mini-css-extract-plugin) - file-loader: v1.1.6 → [v1.1.11](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md#1111-2018-03-01) - filesize: v3.5.11 → [v3.6.0](https://github.com/avoidwork/filesize.js/compare/3.5.11...3.6.0) - html-webpack-plugin: v2.30.1 → [v3.0.6](https://github.com/jantimon/html-webpack-plugin/blob/master/CHANGELOG.md#306-2018-03-06) - inquirer: v3.3.0 → [v5.1.0](https://github.com/SBoudrias/Inquirer.js/releases) - latest version requires Node.js 6 - karma-webpack: v2.0.9 → [v2.0.13](https://github.com/webpack-contrib/karma-webpack/blob/master/CHANGELOG.md#2013-2018-02-27) - mocha: v4.1.0 → [v5.0.4](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md#504--2018-03-07) - npm-install-webpack-plugin v4.0.5 → @insin/npm-install-webpack-plugin v5.0.0 - Webpack 4 compatibility - ora: v1.3.0 → [v2.0.0](https://github.com/sindresorhus/ora/releases/tag/v2.0.0) - postcss-loader: v2.0.10 → [v2.1.1](https://github.com/postcss/postcss-loader/blob/master/CHANGELOG.md#211-2018-02-26) - style-loader: v0.20.1 → [v0.20.2](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md#0202-2018-02-15) - skip empty `url()`s - uglifyjs-webpack-plugin: v1.1.8 → [v1.2.3](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/CHANGELOG.md#123-2018-03-10) - url-loader: v0.6.2 → [v1.0.1](https://github.com/webpack-contrib/url-loader/blob/master/CHANGELOG.md#101-2018-03-03) - webpack: v3.10.0 → [v4.1.1](https://github.com/webpack/webpack/releases) - webpack-dev-middleware: v1.12.2 → [v3.0.1](https://github.com/webpack/webpack-dev-middleware/releases) - webpack-dev-server: v2.9.7 → [v3.1.1](https://github.com/webpack/webpack-dev-server/releases) - webpack-hot-middleware: v2.21.0 → [v2.21.2](https://github.com/glenjamin/webpack-hot-middleware/compare/v2.21.0...v2.21.2) - webpack-merge: v4.1.1 → [v4.1.2](https://github.com/survivejs/webpack-merge/compare/v4.1.1...v4.1.2) ## Internal - Updated `StatusPlugin` and `InlineRuntimePlugin` to use the Use the new Webpack 4 `.hooks` plugin API. ## Docs - Fixed [`publicPath` docs](https://github.com/insin/nwb/blob/master/docs/Configuration.md#publicpath-string), as Webpack's `output.publicPath` config can't be `null` [[#432](https://github.com/insin/nwb/issues/432)] [[stephenwf][stephenwf]] # 0.21.5 / 2018-02-02 ## Dependencies - cross-spawn: v6.0.3 → [v6.0.4](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md#604-2018-01-31) # 0.21.4 / 2018-01-30 ## Fixed - Fixed validation of `webpack.compat` locale properties [[#425](https://github.com/insin/nwb/issues/425)] - Fixed false negative when checking if the port is available when `devServer.port` is specified as a `String` [[#423](https://github.com/insin/nwb/issues/423)] ## Dependencies - uglifyjs-webpack-plugin: v1.1.6 → [v1.1.8](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/CHANGELOG.md#118-2018-01-29) - reduce memory consumption # 0.21.3 / 2018-01-28 ## Changed - `port` config in [`devServer` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#devserver-object) will now be used if configured [[#423](https://github.com/insin/nwb/issues/423)] ## Dependencies - cross-spawn: v5.1.0 → [v6.0.3](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md#603-2018-01-23) - css-loader: v0.28.7 → [v0.28.9](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#0289-2018-01-17) - style-loader: v0.19.1 → [v0.20.1](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md#0201-2018-01-26) # 0.21.2 / 2018-01-17 ## Fixed - Fixed validation of `babel.env` config [[#420](https://github.com/insin/nwb/issues/420)] [[ngyikp][ngyikp]] ## Dependencies - autoprefixer: v7.2.4 → [v7.2.5](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md#725) - opn: v5.1.0 → [v5.2.0](https://github.com/sindresorhus/opn/compare/v5.1.0...v5.2.0) - semver: v5.4.1 → [v5.5.0](https://github.com/npm/node-semver/compare/v5.4.1...v5.5.0) # 0.21.1 / 2018-01-12 ## Fixed - Fixed validation of `webpack.extractText = false` config, which disables extraction of imported stylesheets into `.css` files [[#418](https://github.com/insin/nwb/issues/418)] ## Dependencies - postcss-loader: v2.0.9 → [v2.0.10](https://github.com/postcss/postcss-loader/blob/master/CHANGELOG.md#2010-2018-01-03) - uglifyjs-webpack-plugin: v1.1.5 → [v1.1.6](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/releases/tag/v1.1.6) # 0.21.0 / 2018-01-03 ## Breaking Changes - Validation of the configuration object provided by `nwb.config.js` files has been expanded, so previously valid config files may now be invalid [[#136](https://github.com/insin/nwb/issues/136)] - Unexpected properties in top-level configuration or in `babel`, `karma`, `npm` and `webpack` configuration (i.e. anything that's not documented in the [Configuration docs](https://github.com/insin/nwb/blob/master/docs/Configuration.md)) are now treated as errors [[#193](https://github.com/insin/nwb/issues/193)] - Basic type checking is now performed for all documented configuration properties. - After upgrading, run `nwb check-config` to check your configuration file. - Updated to [UglifyJSPlugin 1.x](https://github.com/webpack-contrib/uglifyjs-webpack-plugin#readme), which supports ES2015 syntax and adds options to enable filesystem caching and use multiple processes to improve build speed, which nwb enables by default [[#412](https://github.com/insin/nwb/issues/412)] - Review any custom [`webpack.uglify` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#uglify-object--false) you have against the new version's [options documentation](https://github.com/webpack-contrib/uglifyjs-webpack-plugin#options) - options for UglifyJS itself must now be passed as an `uglifyOptions` object and some of UglifyJS' default options have changed. - Node.js 4.8.0 is now the minimum required version, based on the `engines` config of nwb's dependencies. ## `nwb.config.js` Config Changes - Deprecated the `webpack.compat.sinon` flag for Sinon 1.x compatibility settings, as subsequent major versions since July 2017 support Webpack out of the box. ## Fixed - Fixed testing React component/library and web module projects when using [export extensions](http://babeljs.io/docs/plugins/transform-export-extensions/) - the Babel stage preset wasn't being defaulted to preset-stage-1, which includes the export extensions plugin [[#364](https://github.com/insin/nwb/issues/364)] ## Added - Added an [`--open` flag](https://github.com/insin/nwb/blob/master/docs/Commands.md#options) to open the app in your default browser or in a named browser (e.g. `--open="Google Chrome"`) after starting a Webpack dev server [[#334](https://github.com/insin/nwb/issues/334)] - You can now provide a [`babel.config()` function](https://github.com/insin/nwb/blob/master/docs/Configuration.md#config-function) which will be given the generated Babel config to do whatever it wants with. - You can now provide a [`karma.config()` function](https://github.com/insin/nwb/blob/master/docs/Configuration.md#config-function-2) which will be given the generated Karma config to do whatever it wants with [[#408](https://github.com/insin/nwb/issues/408)] ## Changed - Simplified configuration of locales in [`webpack.compat` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#compat-object) ## Dependencies - autoprefixer: v7.1.6 → [v7.2.4](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md#724) - babel-plugin-inferno: v3.3.0 → [v3.3.1](https://github.com/infernojs/babel-plugin-inferno/releases) - copy-webpack-plugin: v4.2.1 → [v4.3.1](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md#431-2017-12-22) - file-loader: v1.1.5 → [v1.1.6](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md#116-2017-12-16) - gzip-size: v4.0.0 → [v4.1.0](https://github.com/sindresorhus/gzip-size/compare/v4.0.0...v4.1.0) - karma: v1.7.1 → [v2.0.0](https://github.com/karma-runner/karma/releases/tag/v2.0.0) - karma-webpack: v2.0.6 → [v2.0.9](https://github.com/webpack-contrib/karma-webpack/blob/master/CHANGELOG.md#209-2017-12-14) - mocha: v4.0.1 → [v4.1.0](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md#410--2017-12-28) - postcss-loader: v2.0.8 → [v2.0.9](https://github.com/postcss/postcss-loader/blob/master/CHANGELOG.md#209-2017-11-24) - style-loader: v0.19.0 → [v0.19.1](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md#0191-2017-12-14) - webpack: v3.8.1 → [v3.10.0](https://github.com/webpack/webpack/releases) - webpack-dev-middleware: v1.12.0 → [v1.12.2](https://github.com/webpack/webpack-dev-middleware/releases) - webpack-dev-server: v2.9.4 → [v2.9.7](https://github.com/webpack/webpack-dev-server/releases) - webpack-hot-middleware: v2.20.0 → [v2.21.0](https://github.com/glenjamin/webpack-hot-middleware/compare/v2.20.0...v2.21.0) ## Docs - Added missing docs for [`webpack.copy` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#copy-array--object) - Added more headings to the [Commands docs](https://github.com/insin/nwb/blob/master/docs/Commands.md#commands) to make them easier to browse, and to make feature flags such as `--copy-files` for component builds more visible [[#407](https://github.com/insin/nwb/issues/407)] # 0.20.0 / 2017-11-18 ## Breaking Changes - Updated UMD build config to [export the `default` export of the entry point](https://webpack.js.org/configuration/output/#output-libraryexport), rather than an ES modules interop object which looks something like `{__esModule: true, default: Getter}`, which was unintended behaviour. This will break any existing usage of UMD builds which depended on manually accessing the unintended `default` property [[#402](https://github.com/insin/nwb/issues/402)] - Updated to Mocha 4, which comes with [a number of breaking changes](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md#boom-breaking-changes). These are mostly related to dropping support for older versions of Node.js and non-ES5-compliant browsers. ## Fixed - Bump the default React peerDependency version for react-component projects to `16.x` - fixes creating components with npm 2. ## Dependencies - copy-webpack-plugin: v4.2.0 → [v4.2.1](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md#421-2017-11-17) - detect-port: v1.2.1 → [v1.2.2](https://github.com/node-modules/detect-port/releases) - karma-webpack: v2.0.5 → [v2.0.6](https://github.com/webpack-contrib/karma-webpack/blob/master/CHANGELOG.md#206-2017-11-10) - mocha: v3.4.2 → [v4.0.1](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md#401--2017-10-05) - dropped support for old versions of Node.js and non-ES5-compliant browsers ## Documentation - Documented `--unsafe-perm` workaround for PhantomJS' postinstall step failing on some OSes when installing globally with npm 5 [[#383](https://github.com/insin/nwb/issues/383)] # 0.19.2 / 2017-11-09 ## Fixed - Backed out use of `preact/debug` in favour of `preact/devtools`, as the debug module tries to override the preact module's render export, which fails due to Webpack enforcing the read-only nature of ES module exports. # 0.19.1 / 2017-11-04 ## `nwb.config.js` Config Changes - Deprecated the `webpack.compat.enzyme` flag for Enzyme v2 compatibility settings. Upgrade to Enzyme v3 when you can, which supports React all the way back to v0.13. - [An example of configuring Enzyme v3](https://github.com/insin/nwb/blob/master/docs/Testing.md#configuring-testing-libraries) has been added to the [testing docs](https://github.com/insin/nwb/blob/master/docs/Testing.md#testing). ## Fixed - Added `'createClass'` and `'createReactClass'` to the factory function names [React Transform](https://github.com/gaearon/babel-plugin-react-transform) looks for, so React component hot reloading will work for apps using [`create-react-class`](https://www.npmjs.com/package/create-react-class) imported as one of those names. ## Changed - nwb is now also tested against Node 8 now that it's the Long Term Support version. - Reverted the Webpack settings change for `webpack.compat.enzyme` config in v0.19.0, as it only applied while the version numbers of published React packages were out of sync. The compatibility settings assume Enzyme v2 and React >= v15.5. - `style-loader`'s new `hmr` option is set to `false` when creating builds to prevent inclusion of its HMR code. ## Dependencies - autoprefixer: v7.1.4 → [v7.1.6](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md#716) - babel-plugin-inferno: v3.2.0 → [v3.3.0](https://github.com/infernojs/babel-plugin-inferno/releases) - babel-plugin-transform-react-remove-prop-types: v0.4.8 → [v0.4.10](https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types/releases) - babel-preset-env: v1.6.0 → v1.7.0 - chalk: v2.1.0 → [v2.3.0](https://github.com/chalk/chalk/compare/v2.1.0...v2.3.0) - copy-webpack-plugin: v4.1.0 → [v4.2.0](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md#420-2017-10-19) - extract-text-webpack-plugin: v3.0.0 → [v3.0.2](https://github.com/webpack-contrib/extract-text-webpack-plugin/blob/master/CHANGELOG.md#302-2017-10-25) - file-loader: v1.1.4 → [v1.1.5](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md#115-2017-10-05) - filesize: v3.5.10 → [v3.5.11](https://github.com/avoidwork/filesize.js/compare/3.5.10...3.5.11) - karma-mocha-reporter: v2.2.4 → [v2.2.5](https://github.com/litixsoft/karma-mocha-reporter/blob/master/CHANGELOG.md#225-2017-10-17) - karma-webpack: v2.0.4 → [v2.0.5](https://github.com/webpack-contrib/karma-webpack/blob/master/CHANGELOG.md#205-2017-10-08) - phantomjs-prebuilt: v2.1.15 → v2.1.16 - postcss-loader: v2.0.6 → [v2.0.8](https://github.com/postcss/postcss-loader/blob/master/CHANGELOG.md#208-2017-10-14) - resolve: v1.4.0 → [v1.5.0](https://github.com/browserify/resolve/compare/v1.4.0...v1.5.0) - style-loader: v0.18.2 → [v0.19.0](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md#0190-2017-10-03) - url-loader: v0.5.9 → [v0.6.2](https://github.com/webpack-contrib/url-loader/blob/master/CHANGELOG.md#062-2017-10-04) - webpack: v3.6.0 → [v3.8.1](https://github.com/webpack/webpack/releases) - webpack-dev-server: v2.9.1 → [v2.9.4](https://github.com/webpack/webpack-dev-server/releases) - webpack-hot-middleware: v2.19.1 → [v2.20.0](https://github.com/glenjamin/webpack-hot-middleware/compare/v2.19.1...v2.20.0) - webpack-merge: v4.1.0 → [v4.1.1](https://github.com/survivejs/webpack-merge/blob/master/CHANGELOG.md#411--2017-11-01) # 0.19.0 / 2017-10-02 ## Breaking Changes - Removed hooking of React, Preact and Inferno `render()` functions in quick commands, as this won't work with ES modules builds (which are used by default in Webpack v3). This affected the current version of Preact at the time of writing. - If you're manually using `render()` with quick commands, you must now handle providing the target DOM node too - `document.getElementById('app')` is available in the default HTML template. ## Added - Added [`babel.env` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#env-object) to pass additional [options for `babel-preset-env`](https://github.com/babel/babel-preset-env#options). - Added additional Enzyme [`webpack.compat`](https://github.com/insin/nwb/blob/master/docs/Configuration.md#compat-object) for recent versions of React 15. ## Changed - Now using `babel-preset-env` instead of deprecated `babel-preset-es201X` presets [[#375](https://github.com/insin/nwb/issues/375)] - Use `beautify: true` for `webpack.debug` output so code split bundles are readable. ## Dependencies - autoprefixer: v7.1.2 → [v7.1.4](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md#714) - babel-cli: v6.24.1 → [v6.26.0][babel6260] - babel-core: v6.24.1 → [v6.26.0][babel6260] - babel-loader: v7.1.1 → [v7.1.2](https://github.com/babel/babel-loader/releases/tag/v7.1.2) - babel-plugin-istanbul: v4.1.4 → v4.1.5 - babel-plugin-react-transform: v2.0.2 → [v3.0.0](https://github.com/gaearon/babel-plugin-react-transform/releases) - add `React.PureComponent` to the list of default super classes - babel-plugin-transform-react-remove-prop-types: v0.4.6 → [v0.4.8](https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types/releases) - babel-polyfill: v6.23.0 → [v6.26.0][babel6260] - babel-runtime: v6.25.0 → [v6.26.0][babel6260] - chalk: v2.0.1 → [v2.1.0](https://github.com/chalk/chalk/compare/v2.0.1...v2.1.0) - copy-webpack-plugin: v4.0.1 → [v4.1.0](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md#410-2017-09-29) - css-loader: v0.28.4 → [v0.28.7](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#0287-2017-08-30) - file-loader: v0.11.2 → [v1.1.4](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md#114-2017-09-30) - gzip-size: v3.0.0 → v4.0.0 - async interface now uses Promises - html-webpack-plugin: v2.29.0 → [v2.30.1](https://github.com/jantimon/html-webpack-plugin/blob/master/CHANGELOG.md#v2301) - inquirer: v3.2.1 → [v3.3.0](https://github.com/SBoudrias/Inquirer.js/releases) - karma-mocha-reporter: v2.2.3 → [v2.2.4](https://github.com/litixsoft/karma-mocha-reporter/blob/master/CHANGELOG.md#224-2017-08-24) - karma: v1.7.0 → [v1.7.1](https://github.com/karma-runner/karma/releases/tag/1.7.1) - mocha: v3.4.2 → [v3.5.3](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md#353--2017-09-11) - phantomjs-prebuilt: v2.1.14 → v2.1.15 - fix security issues with dependencies - webpack-dev-middleware: v1.11.0 → [v1.12.0](https://github.com/webpack/webpack-dev-middleware/releases/tag/v1.12.0) - webpack-dev-server: v2.6.1 → [v2.9.1](https://github.com/webpack/webpack-dev-server/releases) - webpack-hot-middleware: v2.18.2 → [v2.19.0](https://github.com/glenjamin/webpack-hot-middleware/compare/v2.18.2...v2.19.0) - webpack: v3.4.1 → [v3.6.0](https://github.com/webpack/webpack/releases) [babel6260]: https://github.com/babel/babel/blob/master/CHANGELOG.md#6260-2017-08-16 # 0.18.10 / 2017-07-27 ## Fixed - Fix dev server HMR for people running on different hosts or a different localhost port [[#356](https://github.com/insin/nwb/issues/356)] [[DethAriel][DethAriel]] ## Dependencies - babel-runtime: v6.23.0 → v6.25.0 - resolve: v1.3.3 → [v1.4.0](https://github.com/browserify/resolve/compare/v1.3.3...v1.4.0) - webpack: v3.4.0 → [v3.4.1](https://github.com/webpack/webpack/releases/tag/v3.4.1) # 0.18.9 / 2017-07-26 ## Changed - Now using preact/debug instead of preact/devtools in quick Preact commands and the Preact project skeleton - requires Preact >= 8.2.0 ## Dependencies - inquirer: v3.2.0 → [v3.2.1](https://github.com/SBoudrias/Inquirer.js/releases/tag/v3.2.1) - promise: v8.0.0 → v8.0.1 - webpack: v3.2.0 → [v3.4.0](https://github.com/webpack/webpack/releases) - bug fixes; now watches for missing directories being added; perf improvements - webpack-dev-server: v2.5.1 → [v2.6.1](https://github.com/webpack/webpack-dev-server/releases) # 0.18.8 / 2017-07-16 ## Dependencies - promise: v8.0.0 → v8.0.1 - webpack: v3.2.0 → [v3.3.0](https://github.com/webpack/webpack/releases/tag/v3.3.0) - bug fixes; now watches for missing directories being added # 0.18.7 / 2017-07-12 ## Changed - You can now set [`webpack.extractText` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#extracttext-object--boolean) to `false` to disable extraction of stylesheets in builds [[#343](https://github.com/insin/nwb/issues/343)] ## Dependencies - extract-text-webpack-plugin: v3.0.0-rc.2 → v3.0.0 - webpack: v3.1.0 → [v3.2.0](https://github.com/webpack/webpack/releases/tag/v3.2.0) - bug fixes ## Documentation - Documented default [`webpack.extractText` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#extracttext-object--boolean). # 0.18.6 / 2017-07-10 ## Dependencies - extract-text-webpack-plugin: v3.0.0-rc.1 → v3.0.0-rc.2 - fix module sorting type error - inquirer: v3.1.1 → [v3.2.0](https://github.com/SBoudrias/Inquirer.js/releases/tag/v3.2.0) # 0.18.5 / 2017-07-09 ## Dependencies - extract-text-webpack-plugin: v3.0.0-beta.3 → v3.0.0-rc.1 - karma-webpack: v2.0.3 → [v2.0.4](https://github.com/webpack-contrib/karma-webpack/blob/master/CHANGELOG.md#204-2017-07-07) - Webpack 3 support - webpack-dev-server: v2.5.0 → [v2.5.1](https://github.com/webpack/webpack-dev-server/releases/tag/v2.5.1) - Webpack 3 support # 0.18.4 / 2017-07-07 ## Fixed - Fixed use of `@import` in CSS by adding `ident` back to `postcss-loader` config [[#311](https://github.com/insin/nwb/issues/311)] - Fixed config validation error being thrown when using `webpack.styles` config for custom preprocessor plugin rules [[#342](https://github.com/insin/nwb/issues/342)] - Fixed display of valid properties when an invalid property is used when configuring a custom `webpack.styles` rule. ## Added - Added [`webpack.debug` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#debug-boolean) to trigger creation of a more debuggable production build [[#336](https://github.com/insin/nwb/issues/336)] The recommended way to use this is via a [config argument](https://github.com/insin/nwb/blob/master/docs/Configuration.md#configuration-via-arguments): ```sh npm run build -- --webpack.debug ``` - Added support for the following arguments when building a React component's demo: - `--title` - set the generated demo `index.html`'s `<title>` - `--vendor` - enable creation of a vendor bundle for modules imported from `node_modules/` [[#335](https://github.com/insin/nwb/issues/335)] ## Dependencies - autoprefixer: v7.1.1 → [v7.1.2](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md#711) - babel-loader: v7.1.0 → [v7.1.1](https://github.com/babel/babel-loader/releases/tag/v7.1.1) - don't read `.babelrc` for cache identifier when `babelrc=false` (nwb uses this option) - chalk: v1.1.3 → [v2.0.1](https://github.com/chalk/chalk/compare/v1.1.3...v2.0.1) - extract-text-webpack-plugin: v2.1.2 → [v3.0.0-beta.3](https://github.com/webpack-contrib/extract-text-webpack-plugin/releases) - Webpack 3 support - html-webpack-plugin: v2.28.0 → [v2.29.0](https://github.com/ampedandwired/html-webpack-plugin/blob/master/CHANGELOG.md#v2290) - Webpack 3 support - karma-chrome-launcher: v2.1.1 → [v2.2.0](https://github.com/karma-runner/karma-chrome-launcher/blob/master/CHANGELOG.md#220-2017-06-23) - webpack: v3.0.0 → [v3.1.0](https://github.com/webpack/webpack/releases/tag/v3.1.0) - perf boost; fix ordering in `ExtractTextPlugin` - webpack-hot-middleware: v2.18.0 → [v2.18.2](https://github.com/glenjamin/webpack-hot-middleware/compare/v2.18.0...v2.18.2) # 0.18.3 / 2017-06-22 ## Fixed - Quick `build` command config was being created before the default `NODE_ENV = production` was applied, so output filenames didn't include a chunkhash by default. ## Dependencies - webpack-dev-middleware: v1.10.2 → [v1.11.0](https://github.com/webpack/webpack-dev-middleware/releases/tag/v1.11.0) - Webpack 3 support # 0.18.2 / 2017-06-22 ## Fixed - Fixed clearing the console by default when running the development server. ## Dependencies - babel-loader: v7.0.0 → [v7.1.0](https://github.com/babel/babel-loader/releases/tag/v7.1.0) - Webpack 3 support ## Documentation - Updated [Quick Development with nwb](https://github.com/insin/nwb/blob/master/docs/guides/QuickDevelopment.md#quick-development-with-nwb) for v0.18. # 0.18.1 / 2017-06-20 ## Dependencies - npm-install-webpack2-plugin: v5.0.0 → v5.0.1 - fix Webpack 3 support # 0.18.0 / 2017-06-20 ## Breaking Changes - Updated to Webpack 3 - potentially breaking for some plugins [[#326](https://github.com/insin/nwb/issues/326)] See the [official release post](https://medium.com/webpack/webpack-3-official-release-15fd2dd8f07b) for changes. - Removed support for configuration which was [deprecated in nwb v0.15.0](#0150--2017-01-25). ## Fixed - Fixed display of user config errors when running the dev server. ## Added - Added [`webpack.hoisting` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#hoisting-boolean) to enable use of Webpack 3's new `ModuleConcatenationPlugin` for scope hoisting in production builds [[#326](https://github.com/insin/nwb/issues/326)] - [`babel`, `webpack`, `devServer`, `karma` and `npm` configuration](https://github.com/insin/nwb/blob/master/docs/Configuration.md#configuration-object) can now be provided via [arguments using dotted paths](https://github.com/insin/nwb/blob/master/docs/Configuration.md#configuration-via-arguments) [[#327](https://github.com/insin/nwb/issues/327)] ```sh nwb react build app.js \ --babel.plugins=react-html-attrs \ --babel.stage=2 \ --webpack.hoisting ``` If you have a config file, arguments will override properties in it. This is primarily intended for one-off feature toggles without having to edit your config file, and to provide some level of configuration for [quick development commands](https://github.com/insin/nwb/blob/master/docs/guides/QuickDevelopment.md#quick-development-with-nwb) without needing a config file. ## Changed - [`babel.plugins`](https://github.com/insin/nwb/blob/master/docs/Configuration.md#plugins-string--array), [`babel.presets`](https://github.com/insin/nwb/blob/master/docs/Configuration.md#presets-string--array) and locales in [`webpack.compat`](https://github.com/insin/nwb/blob/master/docs/Configuration.md#compat-object) config now also accept single configuration as a String to make them usable via arguments [[#327](https://github.com/insin/nwb/issues/327)] ## Dependencies - inquirer: v3.1.0 → [v3.1.1](https://github.com/SBoudrias/Inquirer.js/releases/tag/v3.1.1) - npm-install-webpack2-plugin: v4.1.1 → v5.0.0 - drop Webpack 1 and add Webpack 3 to peerDeps - promise: v7.3.0 → v8.0.0 - webpack: v2.6.1 → [v3.0.0](https://github.com/webpack/webpack/releases/tag/v3.0.0) - webpack-dev-server: v2.4.5 → [v2.5.0](https://github.com/webpack/webpack-dev-server/releases/tag/v2.5.0) # 0.17.3 / 2017-07-07 ## Fixed Backported fixes from 0.18: - Fixed use of `@import` in CSS by adding `ident` back to `postcss-loader` config [[#311](https://github.com/insin/nwb/issues/311)] - Fixed display of valid properties when an invalid property is used when configuring a custom `webpack.styles` rule. # 0.17.2 / 2017-07-04 ## Fixed Backported fixes from 0.18: - Fixed display of user config errors when running the development server. - Fixed clearing the console by default when running the development server. - Quick build command config was being created before the default `NODE_ENV = production` was applied, so output filenames didn't include a chunkhash by default. - Fixed config validation error when running the development server and using `webpack.styles` config for custom preprocessor plugin rules. # 0.17.1 / 2017-06-19 ## Fixed - Fixed using a custom port for the dev server - Webpack Dev Server's client didn't like the format we were specifying the URL for the Hot Module Reloading connection in [[#328](https://github.com/insin/nwb/issues/328)] - Use the correct protocol in the `'The app is running at...'` successful compilation message when using HTTPS. # 0.17.0 / 2017-06-17 ## Breaking Changes - Now using [Webpack Dev Server](https://github.com/webpack/webpack-dev-server) (instead of running a basic Express development server). Webpack Dev Server has [security features](https://github.com/insin/inputmask-core) which you may need to configure your way around if you're using `--host` or if your development setup involves hitting the dev server from a different host. Please [create an issue](https://github.com/insin/nwb/issues/new) if you're affected by this change and there's something nwb can do to mitigate dev server problems without compromising security. **React components/libraries** - A [`--[keep-]proptypes` flag](https://github.com/insin/nwb/blob/master/docs/guides/ReactComponents.md#--keep-proptypes) replaces `--no[-wrap]-proptypes` to disable wrapping of `propTypes` in React component project builds so they'll be stripped from a production build. ## Fixed - The process will now exit with a non-zero code when a Webpack build completes with errors [[#290](https://github.com/insin/nwb/issues/290)] - Fixed transpiling of ES2017 features when use of a stage-X preset is disabled with [`babel.stage = false` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#stage-number--false). - Fixed `hmre = false` [Express middleware option](https://github.com/insin/nwb/blob/master/docs/Middleware.md#options) for disabling use of [React Transform](https://github.com/gaearon/babel-plugin-react-transform#readme) to attempt to handle Hot Module Reloading for React components and `render()` error display [[#263](https://github.com/insin/nwb/issues/263)] **Preact** - Fixed importing React components when serving a Preact app - this was missed when fixing `preact-compat` configuration issues from v0.16.0. ## Added **Arguments** - Added a [`--no-clear[-console]` flag](https://github.com/insin/nwb/blob/master/docs/Commands.md#nwb-serve) to disable clearing of the console when running the dev server. - Added a [`--no-html` flag](https://github.com/insin/nwb/blob/master/docs/Commands.md#nwb-build) to disable creation of an `index.html` file if you don't need one (e.g. you're serving your built apps via another means) [[#278](https://github.com/insin/nwb/issues/278)] [[bwendt-mylo][bwendt-mylo]] **Commands** - Added an `nwb web (run|build)` command for [quick development](https://github.com/insin/nwb/blob/master/docs/guides/QuickDevelopment.md#quick-development-with-nwb) with vanilla JavaScript (i.e. you're in charge of rendering). **Configuration** - Added [`devServer` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#devserver-object) to configure [Webpack Dev Server options](https://webpack.js.org/configuration/dev-server/#devserver), which include: - `devServer.historyApiFallback.disableDotRule` can be enabled if you need to use dots in your path when using the HTML5 History API - `devServer.https` can be used to enable HTTPS - `devServer.proxy` can be used to proxy certain URLs to a separate API backend development server - Added a [`type` option](https://github.com/insin/nwb/blob/master/docs/Middleware.md#options) to nwb's Express middleware to set the project type (one of `react`, `preact`, `inferno` or `web`) manually, enabling use of the middleware without a config file. **React** - Added [`babel.removePropTypes` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#removeproptypes-object--false) to disable or configure [removal of `propTypes`](https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types) in React app production builds. - Added [`babel.reactConstantElements` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#reactconstantelements-false) to disable the use of the [React constant element hoisting transform](https://babeljs.io/docs/plugins/transform-react-constant-elements/) in React app production builds. ## Changed **npm modules** - Default Babel config for `react-component` and `web-module` projects now uses [`babel-preset-stage-1`](http://babeljs.io/docs/plugins/preset-stage-1/), so you can use [export extensions](http://babeljs.io/docs/plugins/transform-export-extensions/) by default if you need to re-export a library's modules in `src/index.js` [[#284](https://github.com/insin/nwb/issues/284)] - Default Travis CI config for `react-component` and `web-module` projects now only uses Node 6 by default for quicker builds. **Preact** - [`preact/devtools`](https://github.com/developit/preact#developer-tools) is now imported in development mode to enable use of React Developer Tools when using `nwb preact run`. This has also been added to the `preact-app` template. For existing Preact apps, add the following to its entry point to enable this: ``` if (process.env.NODE_ENV === 'development') { require('preact/devtools') } ``` **React components/libraries** - [`prop-types`](https://github.com/facebook/prop-types#prop-types) imports are now also removed from React component UMD production builds. ## Documentation - Document the [`--copy-files` flag](https://github.com/insin/nwb/blob/master/docs/guides/ReactComponents.md#--copy-files) properly [[#317](https://github.com/insin/nwb/issues/317)] ## Dependencies - babel-core: v6.24.1 → [v6.25.0](https://github.com/babel/babel/releases/tag/v6.25.0) - babel-plugin-transform-react-remove-prop-types: v0.4.5 → [v0.4.6](https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types/releases/tag/v0.4.6) - fix use in Node 4 - babel-preset-es2017: v6.24.1 - detect-port: v1.1.3 → [v1.2.1](https://github.com/node-modules/detect-port/releases) - extract-text-webpack-plugin: v2.1.0 → [v2.1.2](https://github.com/webpack-contrib/extract-text-webpack-plugin/blob/master/CHANGELOG.md#212-2017-06-08) - file-loader: v0.11.1 → [v0.11.2](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md#0112-2017-06-05) - `publicPath` option changes - inquirer: v3.0.6 → [v3.1.0](https://github.com/SBoudrias/Inquirer.js/releases/tag/v3.1.0) - ora: v1.2.0 → v1.3.0 - postcss-loader: v2.0.5 → [v2.0.6](https://github.com/postcss/postcss-loader/blob/master/CHANGELOG.md#206-2017-06-14) - promise: v7.1.1 → v7.3.0 - style-loader: v0.18.1 → [v0.18.2](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md#0182-2017-06-05) - url-loader: v0.5.8 → [v0.5.9](https://github.com/webpack-contrib/url-loader/releases/tag/v0.5.9) - [webpack-dev-server](https://github.com/webpack/webpack-dev-server/): v2.4.5 # 0.16.3 / 2017-05-31 **Dependencies:** - case-sensitive-paths-webpack-plugin: v2.0.0 → [v2.1.1](https://github.com/Urthen/case-sensitive-paths-webpack-plugin/blob/master/CHANGELOG.md#211) - don't intercept Webpack "File not found" error, resolve issue with not recognising when a new file is added # 0.16.2 / 2017-05-31 **Fixed:** - Fixed validation of `webpack.styles` config to allow it to be set to `false` [[#312](https://github.com/insin/nwb/pull/312)] [[seanofw][seanofw]] **Dependencies:** - css-loader: v0.28.3 → [v0.28.4](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#0284-2017-05-30) - preserve leading underscore in class names # 0.16.1 / 2017-05-31 **Fixed:** - Fixed bad render shim paths which were breaking the `nwb react`, `nwb preact` and `nwb inferno` quick development commands. - Fixed `nwb preact` commands and `nwb react`'s `--preact[-compat]` when used with Preact 8 by removing a workaround for an old preact-compat distribution issue. **Added:** - Added support for [create-react-class](https://facebook.github.io/react/docs/react-without-es6.html) when using `preact-compat`. **Dependencies:** - css-loader: v0.28.3 → [v0.28.4](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#0284-2017-05-30) - preserve leading underscore in class names # 0.16.0 / 2017-05-29 **Breaking Changes:** - Global `react`, `preact`, and `inferno` commands are no longer installed when nwb is installed globally [[#308](https://github.com/insin/nwb/issues/308)] These are now subcommands of the global `nwb` command, to avoid conflicting with global commands installed by official tools for these libraries, e.g. [`preact-cli`](https://github.com/developit/preact-cli) is now available, which provides a global `preact` command. - Node.js 4.6.0 is now the minimum required version, based on the `engines` config of nwb's dependencies, - A separate Webpack rule for stylesheets imported from `node_modules/` is no longer created by default. > For backwards compatibility you can set [`webpack.style` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#styles-object--false--old) to `'old'` to use the old default behaviour - this capability will be removed in a future release. - The Babel plugin for Inferno now requires Inferno >= 1.5 and is not backwards-compatible with 1.4. - Default Webpack config now sets `module.strictExportPresence = true` so a missing export is now a compile error. - Default `ExtractTextPlugin` now sets `allChunks = true` to extract stylesheets from all chunks and avoid including the `style-loader` runtime in builds by default. **Added:** - You can now control [how Webpack rules are created for stylesheets](https://github.com/insin/nwb/blob/master/docs/Stylesheets.md#stylesheets) via [`webpack.styles` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#styles-object--false--old). This allows you to set up multiple rules for your own stylesheets (e.g. using CSS Modules only for stylesheets in a particular directory) and to provide rules for dependencies which need a specific Webpack rule for their stylesheets. You can also disable creation of stylesheet rules by setting `webpack.styles` to `false`. - Re-enabled the `react-constant-elements` transform for React production builds, due to significant bug fixes. - Added a `--no-hmre` flag for use when serving a React app, to disable use of [React Transform](https://github.com/gaearon/babel-plugin-react-transform#readme) to attempt to automatically handle Hot Module Replacement for React components and display an overlay with `render()` errors [[#263](https://github.com/insin/nwb/issues/263)] - Added support for [intl](https://github.com/andyearnshaw/Intl.js/) and [react-intl](https://github.com/yahoo/react-intl) in [`webpack.compat` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#compat-object) [[#260](https://github.com/insin/nwb/pull/260)] [[grahamlyus][grahamlyus]] - You can now provide a [`webpack.config()` function](https://github.com/insin/nwb/blob/master/docs/Configuration.md#config-function) which will be given the generated Webpack config to do whatever it wants with [[#256](https://github.com/insin/nwb/issues/256)] - You can now provide [`use` config](https://github.com/insin/nwb/blob/master/docs/Configuration.md#customising-loaders) with a list of loaders in `webpack.rules` to replace a rule's default loader with chained loaders [[#256](https://github.com/insin/nwb/issues/256)] - You can now [disable a default Webpack config rule](https://github.com/insin/nwb/blob/master/docs/Configuration.md#disabling-default-rules) by setting it to `false` [[#256](https://github.com/insin/nwb/issues/256)] **Changed:** - Default options are no longer used if you provide a custom `loader` for a rule in `webpack.rules` [[#256](https://github.com/insin/nwb/issues/256)] - React project templates now use classes and `React.Component` instead of `React.createClass()`, which is deprecated as of React v15.5 [[#216](https://github.com/insin/nwb/issues/216)] **Fixed:** - Fixed chunk hash not changing when imports in a split chunk are changed, by dropping use of the `webpack-md5-hash` plugin [[#301](https://github.com/insin/nwb/issues/301)] [[grahamlyus][grahamlyus]] - Added missing config for `CopyWebpackPlugin` when serving a `react-component` project's demo app, so any static content in `demo/public/` will be also served by the dev server [[#307](https://github.com/insin/nwb/issues/307)] - Removed `node_modules/` caching from default Travis CI config in project skeletons, as it's been reported to cause build failures [[#271](https://github.com/insin/nwb/issues/271)] - An output directory specified with a trailing slash is now cleaned properly when creating a build. - A `loader` configured for a Webpack rule is no longer moved into the `options` object when an options object hasn't been explicitly configured [[#256](https://github.com/insin/nwb/issues/256)] - Fixed cleaning nested dirs, including a demo app's `demo/dist/` dir. - Fixed cleaning output directories specified with a trailing slash. **Dependencies