const Encore = require('@symfony/webpack-encore'); // Manually configure the runtime environment if not already configured yet by the "encore" command. // It's useful when you use tools that rely on webpack.config.js file. if (!Encore.isRuntimeEnvironmentConfigured()) { Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev'); } const path = require('path'); 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/') .enableSassLoader() .addAliases({ 'core-js': path.join(__dirname, 'node_modules/core-js'), 'jquery': path.join(__dirname, 'node_modules/jquery/src/jquery'), 'jquery-ui': path.join(__dirname, 'node_modules/jquery-ui-dist/jquery-ui'), 'jquery-ui-sortable': path.join(__dirname, 'node_modules/jquery-ui-sortable/jquery-ui.min.js'), 'adminlte-js': path.join(__dirname, 'node_modules/admin-lte/dist/js/adminlte.min.js'), 'adminlte-css': path.join(__dirname, 'node_modules/admin-lte/build/scss/adminlte.scss'), 'fontawesome-css': path.join(__dirname, 'node_modules/@fortawesome/fontawesome-free/css/all.css'), 'bootstrap': path.join(__dirname, 'node_modules/bootstrap/'), 'bootstrap-autocomplete': path.join(__dirname, 'node_modules/bootstrap-autocomplete/dist/latest/bootstrap-autocomplete.min.js'), 'select2': path.join(__dirname, 'node_modules/select2/dist/'), 'select2-bootstrap-theme': path.join(__dirname, 'node_modules/select2-bootstrap4-theme/dist/select2-bootstrap4.min.css'), 'toastr': path.join(__dirname, 'node_modules/toastr'), 'daterangepicker': path.join(__dirname, 'node_modules/bootstrap-daterangepicker'), 'moment': path.join(__dirname, 'node_modules/moment/dist/moment.js'), /*'adminlte': path.resolve(__dirname, './node_modules/admin-lte/dist/js/adminlte.min.js'), 'adminltePlugin': path.resolve(__dirname, './node_modules/admin-lte/plugins/'), 'admin-lte-css': path.resolve(__dirname, './node_modules/admin-lte/dist/css/adminlte.css'), 'core-js': path.resolve(__dirname, './node_modules/core-js'), 'jquery': path.join(__dirname, 'node_modules/jquery/src/jquery'), 'select2': path.join(__dirname, 'node_modules/select2/dist/js/select2.js'), 'select2-css': path.join(__dirname, 'node_modules/select2/dist/css/select2.min.css'),*/ //'select2-bootstrap-theme': path.join(__dirname, 'node_modules/select2-bootstrap-5-theme/dist/select2-bootstrap-5-theme.min.css') }) /* * ENTRY CONFIG * * Each entry will result in one JavaScript file (e.g. app.js) * and one CSS file (e.g. app.css) if your JavaScript imports CSS. */ .addEntry('adminlte-plugins', './Lc/SovBundle/Resources/assets/app/adminlte/plugins/app.plugins.js') .addEntry('adminlte-index', './Lc/SovBundle/Resources/assets/app/adminlte/index/app.index.js') .addEntry('adminlte-form', './Lc/SovBundle/Resources/assets/app/adminlte/form/app.form.js') .addEntry('adminlte-sort', './Lc/SovBundle/Resources/assets/app/adminlte/sort/app.sort.js') .addEntry('adminlte-field-filemanager', './Lc/SovBundle/Resources/assets/app/adminlte/field/filemanager/app.filemanager.js') .addEntry('adminlte-field-collection', './Lc/SovBundle/Resources/assets/app/adminlte/field/collection/app.collection.js') .addEntry('adminlte-main', './Lc/SovBundle/Resources/assets/app/adminlte/main/app.main.js') .addEntry('sov-reminder', './Lc/SovBundle/Resources/assets/app/admin/reminder/app.reminder.js') .addEntry('sov-ticket', './Lc/SovBundle/Resources/assets/app/admin/ticket/app.ticket.js') .addEntry('app-backend', './assets/app/backend/common/app.common.js') .addEntry('app-frontend', './assets/app/frontend/app/app.common.js') .addEntry('app-bulle', './assets/app/frontend/js/bulle.js') // enables the Symfony UX Stimulus bridge (used in assets/bootstrap.js) .enableStimulusBridge('./assets/controllers.json') // When enabled, Webpack "splits" your files into smaller pieces for greater optimization. .splitEntryChunks() // will require an extra script tag for runtime.js // but, you probably want this, unless you're building a single-page app .enableSingleRuntimeChunk() /* * 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() // .enableVersioning(Encore.isProduction()) .configureBabel((config) => { config.plugins.push('@babel/plugin-proposal-class-properties'); }) // enables @babel/preset-env polyfills .configureBabelPresetEnv((config) => { config.useBuiltIns = 'usage'; config.corejs = 3; }) //ckeditor config .copyFiles([ {from: './node_modules/ckeditor/', to: 'ckeditor/[path][name].[ext]', pattern: /\.(js|css)$/, includeSubdirectories: false}, {from: './node_modules/ckeditor/adapters', to: 'ckeditor/adapters/[path][name].[ext]'}, {from: './node_modules/ckeditor/lang', to: 'ckeditor/lang/[path][name].[ext]'}, {from: './node_modules/ckeditor/plugins', to: 'ckeditor/plugins/[path][name].[ext]'}, {from: './node_modules/ckeditor/skins', to: 'ckeditor/skins/[path][name].[ext]'}, {from: './node_modules/ckeditor/vendor', to: 'ckeditor/vendor/[path][name].[ext]'} ]) // uncomment if you use TypeScript // .enableTypeScriptLoader() // uncomment if you use React //.enableReactPreset() // uncomment to get integrity="..." attributes on your script & link tags // requires WebpackEncoreBundle 1.4 or higher //.enableIntegrityHashes(Encore.isProduction()) // uncomment if you're having problems with a jQuery plugin //.autoProvidejQuery() ; module.exports = Encore.getWebpackConfig();