1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00
fab-manager/config/webpack/webpack.config.js

64 lines
2.0 KiB
JavaScript
Raw Normal View History

const { webpackConfig, merge } = require('shakapacker');
2022-03-14 13:59:57 +01:00
const webpack = require('webpack');
const path = require('path');
2022-03-15 09:51:39 +01:00
const htmlErb = require('./modules/html_erb');
const jsErb = require('./modules/js_erb');
const sass = require('./modules/sass');
const sassErb = require('./modules/sass_erb');
const html = require('./modules/html');
const uiTour = require('./modules/ui-tour');
2022-03-15 11:13:03 +01:00
const hmr = require('./modules/hmr');
2022-04-28 17:31:31 +02:00
const svg = require('./modules/svg');
2022-03-15 11:13:03 +01:00
const isDevelopment = process.env.NODE_ENV !== 'production';
// See the shakacode/shakapacker README and docs directory for advice on customizing your webpackConfig.
const customConfig = {
2022-03-14 13:59:57 +01:00
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
_: 'lodash',
Hone: 'hone',
Tether: 'tether',
Holder: 'holderjs',
'window.CodeMirror': 'codemirror',
MediumEditor: 'medium-editor',
Humanize: path.resolve(path.join(__dirname, '../../app/frontend/src/javascript/lib/humanize.js')),
2022-03-21 17:59:38 +01:00
GTM: path.resolve(path.join(__dirname, '../../app/frontend/src/javascript/lib/gtm.js')),
2022-03-14 13:59:57 +01:00
moment: 'moment',
2022-03-15 11:13:03 +01:00
Application: [path.resolve(path.join(__dirname, '../../app/frontend/src/javascript/app.js')), 'Application'],
process: 'process/browser'
}),
isDevelopment && new (require('@pmmmwh/react-refresh-webpack-plugin'))(),
2022-03-29 17:21:29 +02:00
isDevelopment && new (require('eslint-webpack-plugin'))({
2022-04-11 13:19:07 +02:00
extensions: ['js', 'ts', 'tsx']
2022-03-29 17:21:29 +02:00
})
].filter(Boolean),
2022-03-14 13:59:57 +01:00
module: {
rules: [
jsErb,
htmlErb,
sassErb,
html,
sass,
2022-03-15 11:13:03 +01:00
uiTour,
2022-04-28 17:31:31 +02:00
hmr,
svg
2022-03-14 13:59:57 +01:00
]
},
resolve: {
2022-03-14 13:59:57 +01:00
extensions: ['.jpg', '.jpeg', '.png', '.gif', '.tiff', '.ico',
'.svg', '.eot', '.otf', '.ttf', '.woff', '.woff2',
'.tsx', '.ts', '.erb', '.html', '.mjs', '.js', '.jsx',
2022-03-14 14:52:23 +01:00
'.sass', '.scss', '.css', '.module.sass', '.module.scss', '.module.css'],
fallback: {
2022-03-15 11:13:03 +01:00
assert: require.resolve('assert')
2022-03-14 14:52:23 +01:00
}
}
};
module.exports = merge(webpackConfig, customConfig);