-
Notifications
You must be signed in to change notification settings - Fork 4k
/
config.js
81 lines (73 loc) · 2.47 KB
/
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
const path = require('path')
// ------------------------------------
// Environment vars
// ------------------------------------
const env = process.env.NODE_ENV || 'development'
const __DEV__ = env === 'development'
const __TEST__ = env === 'test'
const __PROD__ = env === 'production'
const envConfig = {
env,
// ----------------------------------
// Project Structure
// ----------------------------------
path_base: __dirname,
dir_src: 'src',
dir_dist: 'dist',
dir_docs_dist: 'docs/dist',
dir_docs_public: 'docs/public',
dir_docs_src: 'docs/src',
}
// ------------------------------------
// Paths
// ------------------------------------
const base = (...args) => path.resolve(...[envConfig.path_base, ...args])
const paths = {
base,
src: base.bind(null, envConfig.dir_src),
dist: base.bind(null, envConfig.dir_dist),
docsDist: base.bind(null, envConfig.dir_docs_dist),
docsPublic: base.bind(null, envConfig.dir_docs_public),
docsSrc: base.bind(null, envConfig.dir_docs_src),
}
const config = {
...envConfig,
paths,
// ----------------------------------
// Compiler Configuration
// ----------------------------------
compiler_devtool: (__DEV__ || __TEST__) && 'cheap-source-map',
compiler_globals: {
'process.env': {
NODE_ENV: JSON.stringify(env),
},
__DEV__,
__PATH_SEP__: JSON.stringify(path.sep),
__TEST__,
__PROD__,
},
compiler_hash_type: 'hash',
compiler_fail_on_warning: __TEST__ || __PROD__,
compiler_output_path: paths.base(envConfig.dir_docs_dist),
compiler_public_path: '/',
compiler_stats: {
hash: false, // the hash of the compilation
version: false, // webpack version info
timings: true, // timing info
assets: false, // assets info
chunks: false, // chunk info
colors: true, // with console colors
chunkModules: false, // built modules info to chunk info
modules: false, // built modules info
cached: false, // also info about cached (not built) modules
reasons: false, // info about the reasons modules are included
source: false, // the source code of modules
errorDetails: true, // details to errors (like resolving log)
chunkOrigins: false, // the origins of chunks and chunk merging info
modulesSort: '', // (string) sort the modules by that field
chunksSort: '', // (string) sort the chunks by that field
assetsSort: '', // (string) sort the assets by that field
warningsFilter: [/critical dependency:/i],
},
}
module.exports = config