webpack-proxy
v0.2.4
Published
use a webpack loader without installing it.
Downloads
14
Readme
webpack-proxy
Install
yarn add webpack-proxy
Usage
Let's say you want to use buble-loader
, you can just add it to your webpack config without installing buble-loader
and buble
, since webpack-proxy
will handle that for you!
📝 webpack.config.js:
const proxy = require('webpack-proxy')
module.exports = {
entry: './index.js',
module: {
rules: [
{
test: /\.js$/,
use: proxy({
loader: 'buble-loader',
options: {
// ...loader options
}
})
}
]
}
}
How does it work?
In:
proxy(yourLoader, options)
Out:
[
{
loader: require.resolve('webpack-proxy/lib/proxy-loader'),
options: yourLoader
},
{
loader: require.resolve('webpack-proxy/lib/ensure-loader'),
options: {
loader: yourLoader.loader,
version: options.version,
dependencies: options.dependencies,
peerFilter: options.peerFilter
}
}
]
ensure-loader
is used to install missing dependencies, proxy-loader
is used to run your loader.
webpack itself will check if your loader exists before compiling, but we want to handle this ourselves via ensure-loader
, which is why we use proxy-loader
here.
API
proxy(UseEntry, [options])
Return an array of UseEntry.
options
version
Type: string
Set the version range of the missing loader to install.
dependencies
Type: string[]
Add extra dependencies to install alongside your loader. e.g. for sass-loader
you need to add node-sass
to dependencies
since it's not listed as peerDependencies
of sass-loader
.
peerFilter
Type: (depName: string, version: string) => boolean
Filter peer dependencies, return true
to include, false
otherwise.
proxy.chain(Rule, UseEntry, [options])
Add UseEntry to certain webpack-chain rule.
Credits
Heavily inspired by Parcel bundler and preact-cli.
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Author
webpack-proxy © egoist, Released under the MIT License. Authored and maintained by egoist with help from contributors (list).
github.com/egoist · GitHub @egoist · Twitter @_egoistlily