-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.server.js
More file actions
50 lines (46 loc) · 1.39 KB
/
webpack.server.js
File metadata and controls
50 lines (46 loc) · 1.39 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
var path = require("path"),
fs = require("fs"),
webpack = require("webpack"),
_ = require("lodash");
const nodeModules = fs.readdirSync("./node_modules").filter(d => d != ".bin");
function ignoreNodeModules(context, request, callback) {
if (request[0] == ".")
return callback();
const module = request.split("/")[0];
if (nodeModules.indexOf(module) !== -1) {
return callback(null, "commonjs " + request);
}
return callback();
}
function createConfig(isDebug) {
const plugins = [];
if (!isDebug) {
plugins.push(new webpack.optimize.UglifyJsPlugin());
}
//webpack configs//
return {
target: "node",
devtool: "source-map",
entry: "./src/server/server.js",
output: {
path: path.join(__dirname, "build"),
filename: "server.js"
},
resolve: {
alias: {
shared: path.join(__dirname, "src", "shared")
}
},
module: {
loaders: [
{ test: /\.js$/, loader: "babel", exclude: /node_modules/ },
{ test: /\.js$/, loader: "eslint-loader", exclude: /node_modules/ }
]
},
externals: [ignoreNodeModules],
plugins: plugins
};
}
//change createConfig to false for production build
module.exports = createConfig(true);
module.exports.create = createConfig;