webpack-simple
Advanced tools
Comparing version 1.3.2 to 1.4.0
34
index.js
@@ -127,2 +127,4 @@ const defaultJSExclude = [/\.json$/, /node_modules/]; | ||
const makeWebpackConfig = ({ | ||
js, | ||
css, | ||
entry, | ||
@@ -134,13 +136,25 @@ output, | ||
rules = defaultWebpackRules, | ||
} = {}) => ({ | ||
mode, | ||
entry, | ||
output, | ||
target, | ||
devtool, | ||
module: { | ||
rules, | ||
}, | ||
}); | ||
} = {}) => { | ||
let customRules = rules; | ||
if (js) { | ||
customRules = rules.map(rule => (rule.test.test('.js') ? js : rule)); | ||
} | ||
if (css) { | ||
customRules = rules.map(rule => (rule.test.test('.css') ? css : rule)); | ||
} | ||
return { | ||
mode, | ||
entry, | ||
output, | ||
target, | ||
devtool, | ||
module: { | ||
rules: customRules, | ||
}, | ||
}; | ||
}; | ||
module.exports = { | ||
@@ -147,0 +161,0 @@ makeWebpackConfig, |
{ | ||
"name": "webpack-simple", | ||
"version": "1.3.2", | ||
"version": "1.4.0", | ||
"description": "Webpack Config - Simple defaults, extendable options", | ||
@@ -14,3 +14,13 @@ "main": "index.js", | ||
}, | ||
"keywords": [], | ||
"husky": { | ||
"hooks": { | ||
"pre-push": "npm t" | ||
} | ||
}, | ||
"keywords": [ | ||
"webpack", | ||
"config", | ||
"react", | ||
"babel" | ||
], | ||
"author": "", | ||
@@ -22,5 +32,5 @@ "license": "ISC", | ||
"homepage": "https://github.com/helloitsjoe/webpack-simple#readme", | ||
"dependencies": {}, | ||
"devDependencies": { | ||
"coveralls": "^3.0.4", | ||
"husky": "^2.5.0", | ||
"jest": "^24.7.1", | ||
@@ -27,0 +37,0 @@ "prettier": "^1.16.4" |
@@ -1,6 +0,6 @@ | ||
# Webpack Config | ||
# Webpack Simple | ||
Generates a webpack config with simple defaults and extendable options. | ||
[![Build Status](https://travis-ci.com/helloitsjoe/webpack-simple.svg?branch=master)](https://travis-ci.com/helloitsjoe/webpack-simple) | ||
[![Build Status](https://travis-ci.com/helloitsjoe/webpack-simple.svg?branch=master)](https://travis-ci.com/helloitsjoe/webpack-simple) | ||
[![Coverage Status](https://coveralls.io/repos/github/helloitsjoe/webpack-simple/badge.svg?branch=master)](https://coveralls.io/github/helloitsjoe/webpack-simple?branch=master) | ||
@@ -40,9 +40,11 @@ [![npm](https://img.shields.io/npm/v/webpack-simple.svg)](https://www.npmjs.com/package/webpack-simple) | ||
exclude: [/.json$/, /node_modules/], | ||
use: [{ | ||
loader: 'babel-loader', | ||
options: { | ||
presets: ['@babel/preset-env', '@babel/preset-react'], | ||
plugins: ['@babel/plugin-proposal-class-properties'], | ||
use: [ | ||
{ | ||
loader: 'babel-loader', | ||
options: { | ||
presets: ['@babel/preset-env', '@babel/preset-react'], | ||
plugins: ['@babel/plugin-proposal-class-properties'], | ||
}, | ||
}, | ||
}], | ||
], | ||
}, | ||
@@ -76,7 +78,55 @@ { | ||
You can add or overwrite entire module rules, or just add/overwrite/modify the default JS/CSS loaders: | ||
You can add or overwrite entire module rules: | ||
```js | ||
const { defaultWebpackRules } = require('webpack-simple'); | ||
const noBabelReactCSS = makeWebpackConfig({ rules: [] }); | ||
// TODO: More examples | ||
const includeOtherRules = makeWebpackConfig({ | ||
rules: [...defaultWebpackRules, ...otherRules], | ||
}); | ||
``` | ||
...or just add/overwrite/modify the default JS/CSS loaders: | ||
```js | ||
const { makeJS } = require('webpack-simple'); | ||
const customUse = [{ loader: 'other-loader', options: { foo: 'bar' } }]; | ||
const customJSConfig = makeWebpackConfig({ js: makeJS({ use: customUse }) }); | ||
const customCSSConfig = makeWebpackConfig({ css: makeCSS({ use: customUse }) }); | ||
``` | ||
The full config input options with defaults: | ||
```js | ||
makeWebpackConfig({ | ||
js, // Defaults to JS rule above | ||
css, // Defaults to CSS rule above | ||
rules, // Defaults to rules above | ||
entry = undefined, // Falls back to Webpack's default: '/src/index.js' | ||
output = undefined, // Falls back to Webpack's default '/dist/main.js' | ||
devtool = undefined, | ||
target = 'web', | ||
mode = 'development', | ||
}) | ||
``` | ||
The full list of module exports: | ||
```js | ||
module.exports = { | ||
makeWebpackConfig, | ||
makeJS, | ||
makeCSS, | ||
// Defaults provided so you can overwrite parts of them | ||
defaultWebpackRules, | ||
defaultBabelPlugins, | ||
defaultBabelPresets, | ||
defaultJSExclude, | ||
defaultJSUse, | ||
defaultCSSLoaderOptions, | ||
defaultCSSUse, | ||
}; | ||
``` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
8121
158
131
4