build: Add separate dev and prod builds and add source-maps to dev build 🎉 (#3330)

* build: Add separate dev and prod builds and add sourcemaps to dev build

* update

* add

* update changelog
This commit is contained in:
Aakansha Doshi
2021-03-28 13:48:26 +05:30
committed by GitHub
parent 26a6f9e76d
commit 3d047d57a7
6 changed files with 115 additions and 4 deletions
@@ -0,0 +1,81 @@
const path = require("path");
const webpack = require("webpack");
module.exports = {
mode: "development",
devtool: false,
entry: {
"excalidraw.development": "./entry.js",
},
output: {
path: path.resolve(__dirname, "dist"),
library: "Excalidraw",
libraryTarget: "umd",
filename: "[name].js",
chunkFilename: "excalidraw-assets-dev/[name]-[contenthash].js",
publicPath: "",
},
resolve: {
extensions: [".js", ".ts", ".tsx", ".css", ".scss"],
},
module: {
rules: [
{
test: /\.(sa|sc|c)ss$/,
exclude: /node_modules/,
use: ["style-loader", { loader: "css-loader" }, "sass-loader"],
},
{
test: /\.(ts|tsx|js|jsx|mjs)$/,
exclude: /node_modules/,
use: [
{
loader: "ts-loader",
options: {
transpileOnly: true,
configFile: path.resolve(__dirname, "../tsconfig.dev.json"),
},
},
],
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
use: [
{
loader: "file-loader",
options: {
name: "[name].[ext]",
outputPath: "excalidraw-assets-dev",
},
},
],
},
],
},
optimization: {
splitChunks: {
chunks: "async",
cacheGroups: {
vendors: {
test: /[\\/]node_modules[\\/]/,
name: "vendor",
},
},
},
},
plugins: [new webpack.EvalSourceMapDevToolPlugin({ exclude: /vendor/ })],
externals: {
react: {
root: "React",
commonjs2: "react",
commonjs: "react",
amd: "react",
},
"react-dom": {
root: "ReactDOM",
commonjs2: "react-dom",
commonjs: "react-dom",
amd: "react-dom",
},
},
};