webpacker-pure-config
Version:
Pure webpack way config for webpacker and rails.
106 lines (76 loc) • 1.89 kB
Markdown
Pure webpack way config for webpacker and rails.
Providing `webpack.config` is conpatible with webpacker.rb gem, without any config.
```js
module.exports = require('webpacker-pure-config')
```
`dev`/`test`/`prod` env is available.
These append environment specific parameters. (inspired by `@rails/webpacker`)
If argument is not given, return default config.
```js
const { dev } = require('webpacker-pure-config')
module.exports = dev()
```
arg `options` default value is below.
* baseDir: string = `'app/javascript/packs'`
* extensions: string[] = `['.js', '.jsx']`
* rules: rule[] = `{ test: /.jsx?$/, exclude: /node_modules/, use: ['babel-loader'] }`
webpack.config.js
```js
const { generate } = require('webpack-pure-config')
module.exports = generate({
extensions: ['.ts', '.tsx']
rules: [
{
test: /.tsx?$/,
exclude: /node_modules/,
use: ['ts-loader']
}
]
})
```
config/webpack/development.js
```js
const { dev } = require('webpack-pure-config')
const webpackConfig = require('../../webpack.config')
module.exports = dev(webpackConfig)
```
webpack.config.js
```js
const { generate } = require('webpack-pure-config')
const baseConfig = generate({
extensions: ['.ts', '.tsx']
rules: [
{
test: /.tsx?$/,
exclude: /node_modules/,
use: ['ts-loader']
}
]
})
module.exports = {
...baseConfig,
plugins: [
...baseConfig.plugins,
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
})
]
}
```
config/webpack/development.js
```js
const { dev } = require('webpack-pure-config')
const webpackConfig = require('../../webpack.config')
module.exports = dev(webpackConfig)
```
* supports Node.js 8.x+
MIT