forked from web-illinois/toolkit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.config.js
66 lines (57 loc) · 1.7 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
const Encore = require('@symfony/webpack-encore');
const RemovePlugin = require('remove-files-webpack-plugin');
const path = require('path');
const pkg = require('./package.json');
const colors = require('./api/colors.json')
function makeSassList(name, values) {
return "$" + name + ":\n " + values.join(",\n ") + ";\n\n";
}
function makeSassVariables() {
const colorVars = Object.keys(colors).map(c => `"${c}" ${colors[c]}`);
return makeSassList('colors', colorVars);
}
if (!Encore.isRuntimeEnvironmentConfigured()) {
Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
}
Encore
.setOutputPath('dist')
.setPublicPath('/')
.addEntry('toolkit', './src/js/index.js')
.addStyleEntry('colors', './src/css/colors.scss')
.addStyleEntry('fonts', './src/css/fonts.scss')
.addStyleEntry('icons', './src/css/icons.scss')
.disableSingleRuntimeChunk()
.enableSourceMaps(!Encore.isProduction())
.enableSassLoader(options => {
return {
prependData: makeSassVariables
}
})
.configureDevServerOptions(options => {
options.contentBase = [
path.join(__dirname, 'var/test-site')
];
options.contentBasePublicPath = [
'/'
];
options.liveReload = false;
options.serveIndex = true;
options.disableHostCheck = true;
})
;
if (Encore.isProduction()) {
Encore.setPublicPath('https://cdn.brand.illinois.edu/' + pkg.name + '/' + pkg.version);
Encore.setManifestKeyPrefix('il-web/');
}
const config = Encore.getWebpackConfig();
config.plugins.push(new RemovePlugin({
after: {
include: [
'./dist/manifest.json',
'./dist/entrypoints.json'
],
log: false,
logWarning: false
}
}));
module.exports = config;