@michael/webpack-utils
babel.config.js
const getBabelLoaderOptions = require('@michael/webpack-utils/get-babel-loader-options');
const { presets, plugins } = getBabelLoaderOptions({
ssr: true,
});
module.exports = {
presets,
plugins,
};
dev middleware
import WebpackConfigCreator from '@michael/webpack-utils';
import getEnvConfig from '@michael/webpack-utils/get-env-config';
import webpackDevMiddleware from 'webpack-dev-middleware';
import webpackHotMiddleware from 'webpack-hot-middleware';
const {
dev,
babelOutDir,
distPath,
publicPath,
} = getEnvConfig();
const { getWebpackConfig } = new WebpackConfigCreator({
entry: {
app: [
'./src/client/app.jsx',
],
},
});
const compiler = webpack(getWebpackConfig({
devFast,
dev,
distPath,
publicPath,
babelOutDir,
}));
const wdmInstance = webpackDevMiddleware(compiler, {
publicPath,
});
app.use(wdmInstance);
app.use(webpackHotMiddleware(compiler));
build
import WebpackConfigCreator from '@michael/webpack-utils';
import getEnvConfig from '@michael/webpack-utils/get-env-config';
const {
dev,
babelOutDir,
distPath,
publicPath,
} = getEnvConfig();
const { getWebpackConfig } = new WebpackConfigCreator({
entry: {
app: [
'./src/client/app.jsx',
],
},
});
webpack(getWebpackConfig({
devFast,
dev,
distPath,
publicPath,
babelOutDir,
}));