-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathwebpack.config.js
145 lines (126 loc) · 7.17 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
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
const path = require('path');
const webpack = require('webpack');
function merge ({fileName,src,dest=src.replace("src/","lib/").replace("src\\","lib\\")}, env) {
var config = {
entry: src + "/" + fileName,
output: {
path: dest,
filename: fileName
}
}
var merged = Object.assign({}, env, config)
merged.plugins = (config.plugins || []).concat(env.plugins || [])
return merged
}
const baseConfig = {
cache: true,
devtool: '#source-map',
plugins: [
new webpack.DllReferencePlugin({context: ".",manifest: require('./dist/vendor-manifest.json')}),
new webpack.DefinePlugin({'process.env': {NODE_ENV: JSON.stringify("production")}}),
// new HappyPack({
// // cache: true,
// loaders: ["babel"],
// threads: 4
// }),
new webpack.LoaderOptionsPlugin({
minimize: true,
debug: false,
}),
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
],
node: {
process: false,
__filename: true,
__dirname: true,
fs: 'empty',
electron: 'empty'
},
externals: {
'electron': 'require("electron")'
},
module: {
loaders: [
{
test: /\.js$/,
// exclude: /node_modules\/(base64\-js|ieee754|create\-hash|sha.js|miller\-rabin|elliptic|des.js|minimalistic\-crypto\-utils|bn\.js|ripemd160|react|react-dom|buffer|browserify\-aes|hash\.js|asn1\.js|lodash|react\-addons\-perf|node\-uuid|immutable|inferno|punycode)/,
exclude: /node_modules/,
loader: "babel-loader",
query:{
cacheDirectory: true
}
}
]
}
}
const baseConfigExt = {
cache: true,
devtool: '#source-map',
plugins: [
new webpack.DefinePlugin({'process.env': {NODE_ENV: JSON.stringify("production")}}),
new webpack.LoaderOptionsPlugin({
minimize: true,
debug: false,
}),
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
],
node: {
process: false,
__filename: true,
__dirname: true,
fs: 'empty'
},
externals: {
'electron': 'chrome'
},
module: {
loaders: [
{
test: /\.js$/,
// exclude: /node_modules\/(base64\-js|ieee754|create\-hash|sha.js|miller\-rabin|elliptic|des.js|minimalistic\-crypto\-utils|bn\.js|ripemd160|react|react-dom|buffer|browserify\-aes|hash\.js|asn1\.js|lodash|react\-addons\-perf|node\-uuid|immutable|inferno|punycode)/,
exclude: /node_modules/,
loader: "babel-loader",
query:{
cacheDirectory: true
}
}
]
}
}
const baseConfig2 = Object.assign({},baseConfig)
baseConfig2.plugins = baseConfig.plugins.slice(1)
baseConfig2.externals = {'electron': 'chrome'}
delete baseConfig2.devtool
// delete baseConfig.plugins
// const bpMod = merge({fileName:"backgroundPageModify.js",src:path.join(__dirname,"./src/remoted-chrome"),dest:path.join(__dirname,"./lib")},baseConfig2)
// bpMod.output.library = 'backgroundPageModify'
// bpMod.output.libraryTarget = 'commonjs'
module.exports = [
merge({fileName:"base.js",src:path.join(__dirname,"./src/render")},baseConfig),
// merge({fileName:"top.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"downloader.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"download.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"selector.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"history.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"tabHistorySidebar.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"tabTrashHistorySidebar.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"noteSidebar.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"savedStateSidebar.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"historySidebar.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"explorerMenu.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"explorerSidebar.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"favoriteInit.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"favoriteSidebar.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"terminal.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"sync.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"video_main.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"settings.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"converter.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"automation.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"inputHistorySetting.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
// merge({fileName:"macro.js",src:path.join(__dirname,"./src/defaultExtension/"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfigExt),
// merge({fileName:"mobilePanel.js",src:path.join(__dirname,"./src/defaultExtension/"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfigExt),
// merge({fileName:"videoControllerSidebar.js",src:path.join(__dirname,"./src/toolPages"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfig2),
merge({fileName:"contentscript.js",src:path.join(__dirname,"./src/defaultExtension/"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfigExt),
// merge({fileName:"bg.js",src:path.join(__dirname,"./src/defaultExtension/"),dest:path.join(__dirname,"./resource/extension/default/1.0_0/js")},baseConfigExt),
]