-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
webpack.config.js
51 lines (48 loc) · 1.21 KB
/
webpack.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
const path = require("path");
const commonjsWebpackConfig = {
mode: "production", // production mode
entry: "./index.ts", // entry point of your application
output: {
filename: "cjs/index.cjs", // output file name
path: path.resolve(__dirname, "dist"), // output folder
libraryTarget: "umd", // this allows your module to be used via require() and as a global
globalObject: "this", // this ensures that 'this' is 'window' in a browser environment
},
module: {
rules: [
{
test: /\.ts?$/,
use: "ts-loader",
exclude: /node_modules/,
},
],
},
resolve: {
extensions: [".ts"],
},
};
const moduleWebpackConfig = {
mode: "production", // production mode
entry: "./index.ts", // entry point of your application
output: {
filename: "esm/index.mjs", // output file name
path: path.resolve(__dirname, "dist"), // output folder
libraryTarget: "module", // this allows your module to be used via import
},
experiments: {
outputModule: true,
},
module: {
rules: [
{
test: /\.ts?$/,
use: "ts-loader",
exclude: /node_modules/,
},
],
},
resolve: {
extensions: [".ts"],
},
};
module.exports = [commonjsWebpackConfig, moduleWebpackConfig]; // export the webpack config