All Versions
90
Latest Version
Avg Release Cycle
45 days
Latest Release
981 days ago

Changelog History
Page 6

  • v0.15.0 Changes

    January 25, 2017

    ๐Ÿ’ฅ Breaking Changes:

    • โฌ†๏ธ Upgraded from Webpack 1 to Webpack 2 [#110]

    Minimum Node.js version increased from 4.2 to 4.3 - this is Webpack 2's minimum supported Node.js version.

    Strict Webpack configuration - Webpack 2 is strict about what appears in its configuration object. If you're using webpack.extra config, it must conform to Webpack 2's configuration format or your build will fail with a validation error.

    Dropped CommonJS compatibility when importing ES modules - Webpack 2 no longer allows you to mix CommonJS modules with ECMAScript modules - if a module uses import or export syntax, exports will be undefined and module.exports will be read-only and undefined.

    As a result, we can no longer provide CommonJS interop by default for ES Modules - you will need to check your code for usage of CommonJS require() to import ES modules and tack a .default on the end if you need to use the module's export default.

    If you used nwb's Preact project skeleton, the init() function in index.js needs to have a .default tacked on when the App component is being imported.

    Custom top-level properties no longer allowed in Webpack configuration - Webpack 2 no longer allows custom top-level properties in its configuration. Loader configuration which can't be serialised, such as plugin objects, can now be provided directly as loader options instead using webpack.rules config instead.

    This includes postcss-loader, which is now configured via webpack.rules instead of having its own special webpack.postcss config.

    nwb.config.js Config Format Changes:

    ๐Ÿš€ > For deprecations, nwb will continue to support the old format for the next couple of releases, displaying warning messages about the changes required and adapting deprecated config for use in the current version where possible.

    โšก๏ธ > If you have an nwb.config.js file, run nwb check-config after updating nwb to find out if there's anything you need to change.

    • ๐Ÿ”ง Deprecated karma.testDirs, renaming this config to karma.excludeFromCoverage, as it can be configured to exclude any paths from code coverage, not just directories [#236]
      // < v0.15                         // v0.15
      module.exports = {                 module.exports = {
        karma: {                           karma: {
          testDirs: [                =>      excludeFromCoverage: [
            'test/',                           'test/',
            'path/to/ignorethis.js'            'path/to/ignorethis.js'
          ]                                  ]
        }                                  }
      }                                  }
    
    • ๐Ÿ—„ Deprecated webpack.loaders, renaming this config to webpack.rules to match Webpack 2's new config format:
      // < v0.15              // v0.15
      module.exports = {      module.exports = {
        webpack: {              webpack: {
          loaders: {      =>      rules: {
            /* ... */               /* ... */
          }                       }
        }                       }
      }                       }
    
    • ๐Ÿ”ง Deprecated use of a query property to configure Webpack rule options as a separate object - an options property should now be used as per Webpack 2's new config format:
      // < v0.15                        // v0.15
      module.exports = {                module.exports = {
        webpack: {                        webpack: {
          loaders: {                        rules: {
            css: {                            css: {
              query: {              =>          options: {
                modules: /* ... */                modules: /* ... */
              }                                 }
            }                                 }
          }                                 }
        }                                 }
      }                                 }
    

    You can also still configure loader options as a flat object to make this particular change irrelevant:

      module.exports = {
        webpack: {
          rules: {
            css: {
              modules: /* ... */
            }
          }
        }
      }
    
    • ๐Ÿ”ง Deprecated configuring PostCSS plugins with special webpack.postcss config - postcss-loader can now be configured like any other loader using webpack.rules config:
      // < v0.15                           // v0.15
      module.exports = {                   module.exports = {
        webpack: {                           webpack: {
          postcss: [                   =>      rules: {
            require('precss')(),                 postcss: {
            require('autoprefixer')()              plugins: [
          ]                                          require('precss')(),
        }                                            require('autoprefixer')()
      }                                            ]
                                                 }
                                               }
                                             }
                                           }
    

    โœ‚ Removed:

    • โœ‚ Removed support for configuration which was deprecated in nwb v0.12.
    • โœ‚ Removed support for json-schema in webpack.compat config, as this library has now been fixed [#227]

    Dependencies:

    • autoprefixer: v6.6.1 โ†’ v6.7.0
    • babel-cli: v6.18.0 โ†’ v6.22.2
    • babel-core: v6.21.0 โ†’ v6.22.1
    • ๐Ÿ”Œ babel-plugin-inferno: v1.5.0 โ†’ v1.7.0 - make plugin ES5-environment compatible; add option to import createVNode
    • ๐Ÿ”Œ babel-plugin-transform-react-jsx: v6.8.0 โ†’ v6.22.0
    • ๐Ÿ”Œ babel-plugin-transform-react-jsx-self: v6.11.0 โ†’ v6.22.0
    • ๐Ÿ”Œ babel-plugin-transform-react-jsx-source: v6.9.0 โ†’ v6.22.0
    • ๐Ÿ”Œ babel-plugin-transform-runtime: v6.15.0 โ†’ v6.22.0
    • babel-polyfill: v6.20.0 โ†’ v6.22.0
    • babel-preset-es2015: v6.18.0 โ†’ v6.22.0
    • babel-preset-es2016: v6.16.0 โ†’ v6.22.0
    • babel-preset-react : v6.16.0 โ†’ v6.22.0
    • babel-preset-stage-0: v6.16.0 โ†’ v6.22.0
    • babel-preset-stage-1: v6.16.0 โ†’ v6.22.0
    • babel-preset-stage-2: v6.18.0 โ†’ v6.22.0
    • babel-preset-stage-3: v6.17.0 โ†’ v6.22.0
    • babel-runtime: v6.20.0 โ†’ v6.22.0
    • detect-port: v1.0.7 โ†’ v1.1.0
    • filesize: v3.3.0 โ†’ v3.4.3
    • ๐Ÿ”Œ html-webpack-plugin: v2.24.1 โ†’ v2.26.0 - Webpack 2 RC support
    • ๐Ÿš€ inquirer: v2.0.0 โ†’ v3.0.1 - drop Node.js 0.12 support
    • karma: v1.3.0 โ†’ v1.4.0
    • karma-mocha-reporter: v2.2.1 โ†’ v2.2.2
    • ๐Ÿ‘ karma-webpack: v1.8.0 โ†’ v2.0.1 - Webpack 2 RC support
    • object-assign: v4.1.0 โ†’ v4.1.1
    • ora: v0.4.1 โ†’ v1.1.0 - text can now be changed while stopping and persisting
    • postcss-loader: v1.2.1 โ†’ v1.2.2
    • ๐Ÿš€ webpack: v1.14.0 โ†’ v2.2.0 - \o/
    • ๐Ÿ”€ webpack-merge: v2.3.1 โ†’ v2.4.0
    • ๐Ÿš€ whatwg-fetch: v2.0.1 โ†’ v2.0.2

    Temporarily Scoped Dependencies:

    ๐Ÿš€ These are being scoped to both make use of unreleased features and to test them out:

    • ๐Ÿš€ @insin/extract-text-webpack-plugin - scoped until this PR is merged and released
    • ๐Ÿš€ @insin/npm-install-webpack-plugin - scoped until new features are merged and released

    Internal:

    • โฌ‡๏ธ Dropped unused fs-extra dependency.
    • ๐Ÿ‘‰ Use babel-preset-env when transpiling to lib/, targeting Node.js 4 [#233]
    • ๐Ÿ‘‰ Use ES2015 String methods available in Node.js 4 instead of String.prototype.indexOf comparisons [#222]
  • v0.14.3 Changes

    January 21, 2017

    ๐Ÿ›  Fixed:

    • ๐Ÿ›  Fix inferno build command [#241] [[balazs4][balazs4]]
  • v0.14.2 Changes

    January 20, 2017

    ๐Ÿ›  Fixed:

    • ๐Ÿ›  Fix using Express middleware with a config file which exports a function [#238]
  • v0.14.1 Changes

    January 13, 2017

    ๐Ÿ›  Fixed:

    • ๐Ÿ›  Fix running tests with base config only (web-app and web-module projects).

    Dependencies:

    • โฌ‡๏ธ Downgrade html-webpack-plugin to v2.24.1 while issues later versions cause with npm-install-webpack-plugin are unresolved.
  • v0.14.0 Changes

    January 13, 2017

    ๐Ÿ›  Fixed:

    • ๐Ÿ“ฆ To prevent version compatibility issues using project commands from a globally-installed nwb, it will now exit with a warning if the project specifies a different version of nwb in package.json [#167]
      • The ability to run project commands like build, serve etc. from a global nwb install is provided so you don't have to reinstall the entirety of nwb when creating new projects, but it's recommended that you switch to a locally-installed version later, as relying on globally-installed tool versions is brittle.
    • ๐Ÿ›  Fix clean commands in paths with spaces [#181]

    โž• Added:

    • โž• Added an inferno command for quick Inferno prototyping and building. Use inferno run <entry.js> to serve a module and inferno build <entry.js> [dist/] to build it.
    • โž• Added a preact command for quick Preact prototyping and building. Use preact run <entry.js> to serve a module and preact build <entry.js> [dist/] to build it.
    • 0๏ธโƒฃ The inferno and preact commands use a render shim module by default which hooks into Inferno.render() and Preact.render() to intercept the incoming VNode and re-render it from the top when accepting Hot Module Replacement, so if you're calling render() yourself you don't have to specify a DOM node, or a root when re-rendering in Preact.
      • If you want to take full control of rendering, use the --force flag and nwb will skip the render shim and use your entry module directly.
      • The react command's render shim doesn't hook into ReactDOM.render() and only handles rendering exported components or elements for convenient prototyping, as react-transform-hmr handles the details of accepting Hot Module Replacement and patching/re-rendering at the component/module level.
    • โž• Added new features which are available in the inferno and preact commands to the existing react command:
      • Added a --plugins option to specify nwb plugins which should be installed and used without having to set up a package.json.
      • Added a --force option to force use of the provided entry module directly instead of the render shim module which is used by default to support quick prototyping.
      • Added a --no-polyfill option to disable inclusion of nwb's default polyfills for Promise, fetch() and Object.assign() if you're not using them or don't need them polyfilled.
      • Inferno compat and Preact compat dependencies are now automatically installed if missing.
      • react build can now build a module which exports a React component or element, for quick sharing of prototypes.
    • ๐Ÿ”ง Inferno and Preact apps are now configured to use their respective React compatibility modules by default if react or react-dom are imported, allowing use of existing React code out of the box.

    ๐Ÿ”„ Changed:

    • ๐Ÿ— The Webpack manifest module is now generated when building an app (as well as being inlined into the generated index.html) - you will need to include this first if manually handling HTML generation after building.
    • ๐Ÿ‘ Express middleware now supports Inferno, Preact and plain JavaScript apps, not just React.
    • ๐Ÿ— When building a React app using the --inferno or --preact flags, the required compatibility dependencies are now installed automatically if they can't be resolved from your project directory.
    • โœ… When creating new projects, the latest version of dependencies will be installed, rather than using a a version range hardcoded in nwb.
    • Skip initialising a Git repo if a .git/ directory already exists, e.g. you may want to use nwb init in an existing repo.
    • ๐Ÿ— The default build for a React component demo app now supports use of a demo/public/ directory for static content.
    • ๐Ÿ“œ An args property is now included in the object passed to user configs which export a function - this contains parsed arguments, e.g. args.preact will be true if you passed --preact when calling nwb.

    โœ‚ Removed:

    • โœ‚ Removed support for using --set-env-VAR_NAME arguments to set environment variables.
    • ๐Ÿ— jsnext:main is no longer included package.json for new react-component and web-module projects - only the "more standard" module property is used to point to an ES2015 modules build [#215]

    Dependencies:

    • autoprefixer: v6.5.3 โ†’ v6.6.1
    • babel-core: v6.20.1 โ†’ v6.21.0
    • ๐Ÿ‘ babel-loader: v6.2.9 โ†’ v6.2.10 - Webpack 2 RC support
    • ๐Ÿ”Œ babel-plugin-inferno: v1.4.0 โ†’ v1.5.0 - use import instead of global Inferno reference
    • ๐Ÿ”Œ babel-plugin-istanbul: v3.0.0 โ†’ v3.1.2
    • ๐Ÿ”Œ babel-plugin-lodash: v3.2.10 โ†’ v3.2.11
    • ๐Ÿš€ detect-port: v1.0.6 โ†’ v1.0.7
    • ๐Ÿ”Œ html-webpack-plugin: v2.24.1 โ†’ v2.26.0 - Webpack 2 RC support
    • ๐Ÿ‘ karma-webpack: v1.8.0 โ†’ v1.8.1 - Webpack 2 RC support
    • ora: v0.3.0 โ†’ v0.4.1
    • ๐Ÿš€ phantomjs-prebuilt: v2.1.13 โ†’ v2.1.14
    • postcss-loader: v1.2.0 โ†’ v1.2.1
    • ๐Ÿ’ป resolve: v1.1.7 โ†’ v1.2.0
    • ๐Ÿš€ webpack-dev-middleware: v1.8.4 โ†’ v1.9.0 - Webpack 2 RC support
    • โš  webpack-hot-middleware: v2.13.2 โ†’ v2.15.0 - add cache for warnings
    • ๐Ÿ”€ webpack-merge: v1.0.2 โ†’ v2.3.1 - providing an empty array/object no longer overrides when merging
  • v0.13.8 Changes

    December 31, 2016

    ๐Ÿ”„ Changed:

    • 0๏ธโƒฃ Inferno apps now use Inferno 1.x by default.

    Dependencies:

    • ๐Ÿ”Œ babel-plugin-inferno: v1.3.0-beta17 โ†’ v1.4.0
  • v0.13.7 Changes

    December 25, 2016

    ๐Ÿ›  Fixed:

    • โšก๏ธ Updated Inferno Babel plugin to fix whitespace trimming issue.

    ๐Ÿ”„ Changed:

    • โšก๏ธ Updated default Inferno version for new apps to 1.0.0-beta42.

    Dependencies:

    • ๐Ÿ”Œ babel-plugin-inferno: v1.2.0-beta13 โ†’ v1.3.0-beta17 - fixes whitespace trimming around newlines
  • v0.13.6 Changes

    December 13, 2016

    ๐Ÿ›  Fixed:

    If you depend on babel-runtime in a React component or Web module (by using async/await or enabling any of the runtime transform's other features it needs to be resolvable from the end-user's dependencies, so should be added to your project's peerDependencies.

  • v0.13.5 Changes

    December 13, 2016

    ๐Ÿ›  Fixed:

    • ๐Ÿ›  Fix bad char in initial Git commit [#182 by [ntwcklng][ntwcklng]]
  • v0.13.4 Changes

    December 11, 2016

    ๐Ÿ›  Fixed:

    • ๐Ÿ›  Fix default test in the preact-app skeleton [#206 by [ntwcklng][ntwcklng]]