mirror of
https://github.com/betagouv/mon-entreprise
synced 2025-02-08 21:05:01 +00:00
cb1bdb2b5b
On compile maintenant pour les navigateurs récents (qui supportent les modules es6. On ajoute une config de build pour les browser legacy (ie11). Cela permet : - De ne plus être dépendant de polyfill.io (qui nous a claqué dans les doigts et a peté la prod) - D'avoir un JS transpilé plus léger et plus proche du code écrit pour les navigateurs récents - De pouvoir ajuster le build en fonction du navigateur (on ajoute pas le serviceWorker dans IE par exemple. A l'inverse, on pourrait multiplier le nombre de bundle pour tirer profit de HTTP2)
62 lines
974 B
JavaScript
62 lines
974 B
JavaScript
module.exports.styleLoader = styleLoader => ({
|
|
test: /\.css$/,
|
|
use: [
|
|
{ loader: styleLoader },
|
|
{
|
|
loader: 'css-loader',
|
|
options: {
|
|
sourceMap: true,
|
|
importLoaders: 1
|
|
}
|
|
},
|
|
{
|
|
loader: 'postcss-loader'
|
|
}
|
|
]
|
|
})
|
|
|
|
module.exports.commonLoaders = ({ legacy = false } = {}) => {
|
|
const babelLoader = {
|
|
loader: 'babel-loader',
|
|
options: {
|
|
presets: [
|
|
[
|
|
'@babel/preset-env',
|
|
{
|
|
targets: !legacy
|
|
? {
|
|
esmodules: true
|
|
}
|
|
: {
|
|
esmodules: false,
|
|
browsers: ['ie 11']
|
|
},
|
|
useBuiltIns: 'entry'
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
|
|
return [
|
|
{ test: /\.js$/, loader: babelLoader, exclude: /node_modules|dist/ },
|
|
{
|
|
test: /\.(jpe?g|png|svg)$/,
|
|
use: {
|
|
loader: 'file-loader',
|
|
options: {
|
|
name: 'images/[name].[ext]'
|
|
}
|
|
}
|
|
},
|
|
{
|
|
test: /\.yaml$/,
|
|
use: ['json-loader', 'yaml-loader']
|
|
},
|
|
|
|
{
|
|
test: /\.ne$/,
|
|
use: [babelLoader, 'nearley-loader']
|
|
}
|
|
]
|
|
}
|