Skip to content

Commit

Permalink
feat(webpack): improve import logic
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuhao-C committed Jul 29, 2021
1 parent 007b4e4 commit b93dfa4
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 18 deletions.
4 changes: 2 additions & 2 deletions template/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"private": true,
"description": "",
"scripts": {
"dev": "webpack serve --mode development --config webpack.common.ts",
"build": "webpack --mode production --config webpack.common.ts",
"dev": "webpack serve --mode development --config webpack.dev.ts",
"build": "webpack --mode production --config webpack.prod.ts",
"prepare": "husky install"
},
"repository": {
Expand Down
15 changes: 1 addition & 14 deletions template/webpack.common.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import path from 'path';
import webpack from 'webpack';
import { merge } from 'webpack-merge';
import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
import WebpackBarPlugin from 'webpackbar';
Expand Down Expand Up @@ -65,16 +64,4 @@ const commonConfig: webpack.Configuration = {
stats: 'errors-only',
};

module.exports = async (
_: Record<string, string>,
args: Record<string, string>,
) => {
switch (args.mode) {
case 'development':
return merge(commonConfig, (await import('./webpack.dev')).default);
case 'production':
return merge(commonConfig, (await import('./webpack.prod')).default);
default:
throw new Error('No matching configuration was found!');
}
};
export default commonConfig;
4 changes: 3 additions & 1 deletion template/webpack.dev.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import path from 'path';
import webpack from 'webpack';
import { merge } from 'webpack-merge';
import HtmlWebpackPlugin from 'html-webpack-plugin';
import InterpolateHtmlPlugin from 'react-dev-utils/InterpolateHtmlPlugin';
import commonConfig from './webpack.common';

const devConfig: webpack.Configuration = {
mode: 'development',
Expand Down Expand Up @@ -40,4 +42,4 @@ const devConfig: webpack.Configuration = {
},
};

export default devConfig;
export default merge(commonConfig, devConfig);
4 changes: 3 additions & 1 deletion template/webpack.prod.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import path from 'path';
import fs from 'fs-extra';
import webpack from 'webpack';
import { merge } from 'webpack-merge';
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
import SizePlugin from 'size-plugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
import InterpolateHtmlPlugin from 'react-dev-utils/InterpolateHtmlPlugin';
import { CleanWebpackPlugin } from 'clean-webpack-plugin';
import { green, cyan } from 'chalk';
import commonConfig from './webpack.common';

// eslint-disable-next-line @typescript-eslint/no-var-requires
const packageJson = require('./package.json');
Expand Down Expand Up @@ -108,4 +110,4 @@ const prodConfig: webpack.Configuration = {
devtool: 'source-map',
};

export default prodConfig;
export default merge(commonConfig, prodConfig);

0 comments on commit b93dfa4

Please sign in to comment.