UNPKG

@webpack-contrib/defaults

Version:

Project configuration and boilerplate defaults for webpack projects

46 lines (39 loc) 1.13 kB
import path from 'path'; import webpack from 'webpack'; import { createFsFromVolume, Volume } from 'memfs'; export default (fixture, loaderOptions = {}, config = {}) => { const fullConfig = { mode: 'development', devtool: config.devtool || false, context: path.resolve(__dirname, '../fixtures'), entry: path.resolve(__dirname, '../fixtures', fixture), output: { path: path.resolve(__dirname, '../outputs'), filename: '[name].bundle.js', chunkFilename: '[name].chunk.js', }, module: { rules: [ { test: /\.js$/i, rules: [ { loader: path.resolve(__dirname, '../../src'), options: loaderOptions || {}, }, ], }, ], }, plugins: [], ...config, }; const compiler = webpack(fullConfig); if (!config.outputFileSystem) { const outputFileSystem = createFsFromVolume(new Volume()); // Todo remove when we drop webpack@4 support outputFileSystem.join = path.join.bind(path); compiler.outputFileSystem = outputFileSystem; } return compiler; };