This package has been deprecated

Author message:

This package is deprecated. Its new name is "webpack-validator".

webpack-joi-schema

1.0.0-beta.8 • Public • Published

webpack-joi-schema

travis build codecov.io

This package is deprecated, it lives on under the name webpack-validator.

Writing webpack configs is a brittle and error-prone. This package provides a joi object schema for webpack configs. This gets you a) static type safety and b) "semantic" validations such as "module.loaders.loader and module.loaders.loaders can not be used simultaneously" or "module.loaders.query can only be used with module.loaders.loader, not with module.loaders.loaders".

Note: This is a work in progress. If you like it, you're welcome to give feedback & PR's.

Usage

In your webpack.config.js:

const validate = require('webpack-joi-schema')
 
module.exports = validate({ /* ... your webpack config */ })

If you need to extend the schema, for example for custom top level properties or properties added by third party plugins like eslint-loader (which adds a toplevel eslint property), do it like this:

const validate = require('webpack-joi-schema')
const schema = require('webpack-joi-schema').schema
 
// joi is installed as dependency of this package and will be available in node_modules
// if you use npm 3. Otherwise install it explicitly.
const Joi = require('joi') 
 
const yourSchema = schema.concat(Joi.object({
  // this would just allow the property and doesn't perform any additional validation
  eslint: Joi.any() 
}))
 
const config = { /* ... your webpack config */ }
 
// Override default config by supplying your config as second parameter.
module.exports = validate(config, yourSchema) 

License

MIT

Package Sidebar

Install

npm i webpack-joi-schema

Weekly Downloads

1

Version

1.0.0-beta.8

License

MIT

Last publish

Collaborators

  • jonathanewerner