-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.main.ts
70 lines (64 loc) · 1.9 KB
/
webpack.main.ts
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
"use strict";
import * as path from "path";
const { dependencies } = require("./package.json");
import * as webpack from "webpack";
function env(global_env: any): "development" | "production" {
return global_env ? global_env : "development";
}
const mainConfig: webpack.Configuration = {
entry: {
main: path.join(__dirname, "./main.ts"),
},
devtool: "#source-map",
// externals: [
// ...Object.keys(dependencies || {}),
// ],
mode: env(process.env.NODE_ENV),
module: {
rules: [
{
test: /\.tsx?$/,
exclude: /node_modules/,
enforce: "pre",
loader: "tslint-loader",
},
{
test: /\.tsx?$/,
use: [
{
loader: "ts-loader",
},
],
exclude: /node_modules/,
},
],
},
node: {
__dirname: process.env.NODE_ENV !== "production",
__filename: process.env.NODE_ENV !== "production",
},
output: {
filename: "[name].js",
libraryTarget: "commonjs2",
path: path.join(__dirname, "./dist"),
},
plugins: [
new webpack.NoEmitOnErrorsPlugin(),
new webpack.DefinePlugin({
"process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV),
}),
],
resolve: {
extensions: [".ts", ".js", ".json"],
alias: {
"@route": path.join(__dirname, "/src/route/"),
"@views": path.join(__dirname, "/src/views/"),
"@store": path.join(__dirname, "/src/store/"),
"@components": path.join(__dirname, "/src/components"),
"@utils": path.join(__dirname, "/src/utils"),
"@main": path.join(__dirname, "/src/main_process"),
},
},
target: "electron-main",
};
export default mainConfig;