Skip to content

v0.22.0

Compare
Choose a tag to compare
@insin insin released this 12 Mar 18:28
· 110 commits to master since this release

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]
  • 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]
    • 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:
      • Separate CSS files are now created and loaded on-demand for code splits.
      • Replaced webpack.extractText config with webpack.extractCSS config - 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 v4 - see the Inferno v4 migration guide for breaking changes [#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

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
  • babel-loader: v7.1.2 → v7.1.4
  • babel-plugin-inferno: v3.3.1 → v4.0.0
  • case-sensitive-paths-webpack-plugin: v2.1.1 → v2.1.2
  • chalk: v2.3.0 → v2.3.2
  • copy-webpack-plugin: v4.3.1 → v4.5.1
  • cross-spawn: v6.0.4 → v6.0.5
  • css-loader: v0.28.9 → v0.28.10
  • extract-text-webpack-plugin v3.0.0 → mini-css-extract-plugin v0.2.0
  • filesize: v3.5.11 → v3.6.0
  • inquirer: v3.3.0 → v5.1.0 - latest version requires Node.js 6
  • karma-webpack: v2.0.9 → v2.0.13
  • mocha: v4.1.0 → v5.0.4
  • 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
  • postcss-loader: v2.0.10 → v2.1.1
  • style-loader: v0.20.1 → v0.20.2 - skip empty url()s
  • uglifyjs-webpack-plugin: v1.1.8 → v1.2.3
  • url-loader: v0.6.2 → v1.0.1
  • webpack: v3.10.0 → v4.1.1
  • webpack-dev-middleware: v1.12.2 → v3.0.1
  • webpack-dev-server: v2.9.7 → v3.1.1
  • webpack-hot-middleware: v2.21.0 → v2.21.2
  • webpack-merge: v4.1.1 → v4.1.2

Internal

  • Updated StatusPlugin and InlineRuntimePlugin to use the Use the new Webpack 4 .hooks plugin API.

Docs