Skip to content

Canary tooling for checking webpack dependencies against specific webpack versions

License

Notifications You must be signed in to change notification settings

ducklingsjs/webpack-canary

 
 

Repository files navigation

npm deps test coverage chat

Webpack Canary

Run dependency examples against webpack versions to detect incompatibilities.

Usage

Squawk

Expected usage of the canary is to check multiple versions of webpack against a set of dependencies and squawk if there are any failures. The squawk task is a runner to just that. Webpack versions are stored in webpack-versions.json and dependency versions are stored in dependency-versions.json.

Use npm run squawk to run all dependencies against all versions of webpack, and generate a report with successes and failures. This command does not take any flags.

CLI Interface

To run a specific dependency version against a specific version of webpack, use the canary CLI interface

node index.js --webpack=<webpack_reference> --dependency=<dependency_reference>
  • --webpack can be a version or path to remote repository
  • --dependency can be a dependency name (with or without version) or path to remote repository

Example

# Published versions in registry
node index.js --webpack=2.2 --dependency=raw-loader

# Development versions in remote repositories
node index.js --webpack=webpack/webpack#master --dependency=https://github.com/alistairjcbrown/raw-loader/

Compatibility

A dependency must include an examples directory which contains an example setup with corresponding webpack config. This config is run with the installed webpack version to confirm compatibility.

To Do

  • ES6
  • Tests
  • Flag to control log level verbosity
  • Programatic interface (split CLI flags from app)
  • Script to run for multiple dependencies
  • Linting
  • Show summary successes / failure after running squawk
  • Change logLevel to loglevel
  • Investigate why failing on webpack 1 causes failure in webpack 2 (cache?)
  • Update summary to use progress bar and collapse table if all success
  • Update readme
  • Output recreation command when squawk failure
  • Support multiple examples and output in table
  • Split webpack 1 configs and 2 configs in examples - support non-suported examples
  • Add ability to run more than just loaders / plugins
  • Move from callbacks to promises
  • Don't use npm cli for installing of webpack & dependency
  • Install webpack & dependency somewhere else (not node_modules - avoid potential colisions)
  • Add more folders as example targets (e.g. demo)
  • Allow running dependency tests with the specific webpack version *
  • Refactor InstallObject
  • Add --progress option with a progress bar
  • Add --versions to change the versions file path for squawk
  • Expose canary and squawk as binaries

* - Not sure if possible

Maintainers


Alistair Brown

Juho Vepsäläinen

Joshua Wiens

Kees Kluskens

Sean Larkin

About

Canary tooling for checking webpack dependencies against specific webpack versions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%