Last active
March 17, 2021 22:46
-
-
Save OtayNacef/1a87a357ecd8d4322ff057bbfe550d36 to your computer and use it in GitHub Desktop.
React Typescript Webpack
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import path from "path"; | |
import { Configuration, DefinePlugin } from "webpack"; | |
import HtmlWebpackPlugin from "html-webpack-plugin"; | |
import ForkTsCheckerWebpackPlugin from "fork-ts-checker-webpack-plugin"; | |
import TsconfigPathsPlugin from "tsconfig-paths-webpack-plugin"; | |
const webpackConfig = (): Configuration => ({ | |
entry: "./src/index.tsx", | |
...(process.env.production || !process.env.development | |
? {} | |
: { devtool: "eval-source-map" }), | |
resolve: { | |
extensions: [".ts", ".tsx", ".js"], | |
plugins: [new TsconfigPathsPlugin({ configFile: "./tsconfig.json" })], | |
}, | |
output: { | |
path: path.join(__dirname, "/build"), | |
filename: "build.js", | |
}, | |
module: { | |
rules: [ | |
{ | |
test: /\.tsx?$/, | |
loader: "ts-loader", | |
options: { | |
transpileOnly: true, | |
}, | |
exclude: /build/, | |
}, | |
{ | |
test: /\.s?css$/, | |
use: ["style-loader", "css-loader"], | |
}, | |
], | |
}, | |
devServer: { | |
port: 3000, | |
open: true, | |
historyApiFallback: true, | |
}, | |
plugins: [ | |
new HtmlWebpackPlugin({ | |
// HtmlWebpackPlugin simplifies creation of HTML files to serve your webpack bundles | |
template: "./public/index.html", | |
}), | |
// DefinePlugin allows you to create global constants which can be configured at compile time | |
new DefinePlugin({ | |
"process.env": process.env.production || !process.env.development, | |
}), | |
new ForkTsCheckerWebpackPlugin({ | |
// Speeds up TypeScript type checking and ESLint linting (by moving each to a separate process) | |
eslint: { | |
files: "./src/**/*.{ts,tsx,js,jsx}", | |
}, | |
}), | |
], | |
}); | |
export default webpackConfig; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment