-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
96 lines (79 loc) · 2.69 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
const path = require('path');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const Dotenv = require('dotenv-webpack');
const Encore = require('@symfony/webpack-encore');
Encore
// directory where compiled assets will be stored
.setOutputPath('public/build/')
// public path used by the web server to access the output path
.setPublicPath('/build')
// only needed for CDN's or sub-directory deploy
//.setManifestKeyPrefix('build/')
// enable hash in file name to force cache busting
.enableVersioning()
/*
* ENTRY CONFIG
*
* Add 1 entry for each "page" of your app
* (including one that's included on every page - e.g. "app")
*/
/* TODO: figure out which entries we want here */
.addEntry('ioda', ['@babel/polyfill', './assets/js/Ioda/index.js'])
// yaml-loader
.addLoader({
test: require.resolve('yaml-loader'),
loader: 'yaml-loader',
})
.addRule({
test: /\.ya?ml$/,
use: 'yaml-loader'
})
/*
* FEATURE CONFIG
*
* Enable & configure other features below. For a full
* list of features, see:
* https://symfony.com/doc/current/frontend.html#adding-more-features
*/
.cleanupOutputBeforeBuild()
//.enableBuildNotifications()
.enableSourceMaps(!Encore.isProduction())
// enables hashed filenames (e.g. app.abc123.css)
.enableVersioning(Encore.isProduction())
// enables React support
.enableReactPreset()
/*
* Makes webpack consolidate the runtime logic into a single runtime chunk rather
* than creating a separate runtime chunk for each entry chunk.
*/
.enableSingleRuntimeChunk()
// enables Sass/SCSS support
//.enableSassLoader()
// uncomment if you use TypeScript
//.enableTypeScriptLoader()
// uncomment if you're having problems with a jQuery plugin
//.autoProvidejQuery()
.configureBabel()
;
let webpackConfig = Encore.getWebpackConfig();
webpackConfig.resolve.alias = {
// convenience for accessing our local static assets
'css': path.resolve(__dirname, './assets/css/'),
'images': path.resolve(__dirname, './assets/images/'),
// convenience for accessing our top-level modules
'utils': path.resolve(__dirname, './assets/js/utils/'),
'Config': path.resolve(__dirname, './assets/js/config/'),
'ioda/css': path.resolve(__dirname, './assets/css/Ioda/'),
'ioda': path.resolve(__dirname, './assets/js/Ioda/'),
};
webpackConfig.plugins.push(
new CopyWebpackPlugin({
patterns: [{ from: './assets/images/logos/', to: 'images/'}],
})
);
webpackConfig.plugins.push(
new Dotenv({
path: './.env.local',
})
);
module.exports = webpackConfig;