forked from josuav1/MPContribs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
122 lines (121 loc) · 5.58 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
const path = require("path");
const webpack = require('webpack');
const BundleTracker = require('webpack4-bundle-tracker');
const CleanWebpackPlugin = require("clean-webpack-plugin");
const CompressionPlugin = require('compression-webpack-plugin');
//const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const devMode = process.env.NODE_ENV == 'development'
console.log('devMode = ' + devMode)
module.exports = {
context: __dirname,
entry: {
'main': './mpcontribs-webtzite/webtzite/assets/index',
'render_json': './mpcontribs-webtzite/webtzite/assets/render_json',
'render_table': './mpcontribs-webtzite/webtzite/assets/render_table',
'render_plot': './mpcontribs-webtzite/webtzite/assets/render_plot',
'portal': './mpcontribs-portal/mpcontribs/portal/assets/index',
'explorer': './mpcontribs-explorer/mpcontribs/explorer/assets/index',
'explorer_contribution': './mpcontribs-explorer/mpcontribs/explorer/assets/contribution',
'MnO2_phase_selection': './mpcontribs-users/mpcontribs/users/MnO2_phase_selection/explorer/assets/index',
'jarvis_dft': './mpcontribs-users/mpcontribs/users/jarvis_dft/explorer/assets/index',
'defect_genome_pcfc_materials': './mpcontribs-users/mpcontribs/users/defect_genome_pcfc_materials/explorer/assets/index',
'slac_mose2': './mpcontribs-users/mpcontribs/users/slac_mose2/explorer/assets/index',
'swf': './mpcontribs-users/mpcontribs/users/swf/explorer/assets/index',
'als_beamline': './mpcontribs-users/mpcontribs/users/als_beamline/explorer/assets/index',
'dtu': './mpcontribs-users/mpcontribs/users/dtu/explorer/assets/index',
'carrier_transport': './mpcontribs-users/mpcontribs/users/carrier_transport/explorer/assets/index',
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: "[name].[chunkhash].js",
chunkFilename: '[name].[chunkhash].js',
crossOriginLoading: "anonymous",
publicPath: '/static/'
},
plugins: [
//new BundleAnalyzerPlugin(),
new BundleTracker({filename: './webpack-stats.json'}),
new CleanWebpackPlugin(["dist"]),
new webpack.ProvidePlugin({
_: "underscore", $: "jquery", jquery: "jquery",
"window.jQuery": "jquery", jQuery:"jquery"
}),
new webpack.HashedModuleIdsPlugin(),
new CompressionPlugin({minRatio: 1})
],
optimization: {
minimize: true,
splitChunks: {
maxInitialRequests: Infinity,
minSize: 0,
cacheGroups: {
default: false,
vendors: false,
vendor: { chunks: 'all', test: /node_modules/ }
}
}
},
resolve: {
modules: ['node_modules'],
extensions: ['.js'],
alias: {
"jquery": 'jquery/src/jquery',
"bootstrap": 'bootstrap/dist/js/bootstrap',
"backbone": 'backbone/backbone',
"backgrid": 'backgrid/lib/backgrid',
"filestyle": 'bootstrap-filestyle/src/bootstrap-filestyle',
"chosen": 'chosen-js/chosen.jquery',
"select2": 'select2/dist/js/select2',
"toggle": 'bootstrap-toggle/js/bootstrap-toggle',
"underscore": 'underscore/underscore',
"lunr": 'lunr.js/lunr',
"plotly": 'plotly.js/lib/core',
"backgrid-select-all": 'backgrid-select-all/backgrid-select-all',
"backgrid-filter": 'backgrid-filter/backgrid-filter',
"backbone.paginator": 'backbone.paginator/lib/backbone.paginator',
"backgrid-paginator": 'backgrid-paginator/backgrid-paginator',
"backgrid-grouped-columns": 'backgrid-grouped-columns/backgrid-grouped-columns',
"bootstrap-slider": 'bootstrap-slider/src/js/bootstrap-slider',
"json.human": 'json-human/src/json.human',
"js-cookie": 'js-cookie/src/js.cookie',
"spin.js": 'spin.js/spin',
"linkify": 'linkifyjs/lib/linkify',
"linkify-element": 'linkifyjs/lib/linkify-element',
"mathjs": 'mathjs/core'
//waitfor: 'jquery.waitFor',
//thebe: 'main-built',
}
},
module: {
rules: [
//{ test: /underscore/, loader: 'exports-loader?_' },
{ test: /backbone/, loader: 'exports-loader?Backbone!imports-loader?underscore,jquery' },
{ test: /backgrid/, loader: 'imports-loader?jquery,backbone' },
{ test: /bootstrap/, loader: 'imports-loader?jquery' },
{ test: /filestyle/, loader: 'imports-loader?bootstrap' },
{ test: /chosen/, loader: 'imports-loader?jquery,bootstrap' },
{ test: /select2/, loader: 'imports-loader?jquery' },
{ test: /toggle/, loader: 'imports-loader?jquery,bootstrap' },
{ test: /backgrid-select-all/, loader: 'imports-loader?backgrid' },
{ test: /backgrid-filter/, loader: 'imports-loader?backgrid' },
{ test: /backbone.paginator/, loader: 'imports-loader?backbone' },
{ test: /backgrid-paginator/, loader: 'imports-loader?backgrid,backbone.paginator' },
{ test: /backgrid-grouped-columns/, loader: 'imports-loader?backgrid' },
{ test: /bootstrap-slider/, loader: 'imports-loader?jquery,bootstrap' },
{ test: /linkify-element/, loader: 'imports-loader?linkify' },
//{ test: /waitfor/, loader: 'imports-loader?jquery' },
//{ test: /sandbox/, loader: 'imports-loader?archieml' },
//{ test: /\.(jp(e*)g|png)$/, loader: 'url-loader', options: { limit: 1, name: '[name].[ext]' } },
{
test: /\.(gif|png|jpe?g|svg)$/i,
use: ['file-loader', {loader: 'image-webpack-loader'}],
},
{ test: /\.css$/, loaders: ["style-loader","css-loader"] },
{
test: /\.(woff(2)?|ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'url-loader',
options: { limit: 8192, name:'[name].[ext]', outputPath: 'assets' }
}
]
},
mode : devMode ? 'development' : 'production'
}