-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.config.js
More file actions
70 lines (65 loc) · 1.68 KB
/
webpack.config.js
File metadata and controls
70 lines (65 loc) · 1.68 KB
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
const path = require("path")
const slsw = require("serverless-webpack")
const nodeExt = require("webpack-node-externals")
const stage = slsw.lib.serverless
? slsw.lib.serverless.processedInput.options.stage
: "dev"
function srcPath(subdir) {
return path.join(__dirname, "src", subdir)
}
function useIstanbulInstrumenterLoader() {
if (stage === "dev" || stage === "test") {
return [{
test: /\.(js)$/,
use: {
loader: "istanbul-instrumenter-loader",
options: { esModules: true }
},
enforce: "post",
exclude: /node_modules|\.test\.js$/,
}]
}
return []
}
module.exports = {
mode: stage === "dev" ? "development" : "production",
stats: stage === "dev" ? "verbose" : "errors-only",
entry: slsw.lib.entries,
devtool: "source-map",
resolve: {
extensions: [
".js",
".json"
],
alias: {
"@components": srcPath("components"),
"@errors": srcPath("errors"),
"@utils": srcPath("utils"),
"@middlewares": srcPath("middlewares"),
"@models": srcPath("models"),
"@requests": srcPath("requests"),
"@responses": srcPath("responses"),
"@transformers": srcPath("transformers"),
"@workers": srcPath("workers"),
"@validations": srcPath("validations")
}
},
output: {
libraryTarget: "commonjs",
path: path.join(__dirname, ".webpack"),
filename: "[name].js",
},
target: "node",
module: {
rules: [
...useIstanbulInstrumenterLoader(),
{ test: /\.js$/, loader: "babel-loader", exclude: /(node_modules)/ }
]
},
plugins: [],
optimization: {
removeAvailableModules: true,
occurrenceOrder: true
},
externals: [ nodeExt() ]
}