chill-bundles/src/Bundle/ChillMainBundle/chill.webpack.config.js

64 lines
2.2 KiB
JavaScript

const CKEditorWebpackPlugin = require( '@ckeditor/ckeditor5-dev-webpack-plugin' );
const { styles } = require( '@ckeditor/ckeditor5-dev-utils' );
buildCKEditor = function(encore)
{
encore
.addPlugin( new CKEditorWebpackPlugin( {
language: 'fr',
addMainLanguageTranslationsToAllAssets: true,
verbose: !encore.isProduction(),
strict: true
} ) )
// Use raw-loader for CKEditor 5 SVG files.
.addRule( {
test: /ckeditor5-[^/\\]+[/\\]theme[/\\]icons[/\\][^/\\]+\.svg$/,
loader: 'raw-loader'
} )
// Configure other image loaders to exclude CKEditor 5 SVG files.
.configureLoaderRule( 'images', loader => {
loader.exclude = /ckeditor5-[^/\\]+[/\\]theme[/\\]icons[/\\][^/\\]+\.svg$/;
} )
// Configure PostCSS loader.
.addLoader({
test: /ckeditor5-[^/\\]+[/\\]theme[/\\].+\.css$/,
loader: 'postcss-loader',
options: styles.getPostCssConfig( {
themeImporter: {
themePath: require.resolve('@ckeditor/ckeditor5-theme-lark')
},
minify: true
} )
} )
;
};
// Compile and loads all assets from the Chill Main Bundle
module.exports = function(encore, entries)
{
// Push into "chill" entrypoint
entries.push(__dirname + '/Resources/public/main.js');
// Aliases are used when webpack is trying to resolve modules path
encore.addAliases({
ChillMainAssets: __dirname + '/Resources/public',
ShowHide: __dirname + '/Resources/public/modules/show_hide'
});
// Page entrypoints
encore.addEntry('page_login', __dirname + '/Resources/public/modules/login_page/index.js');
// Modules entrypoints
encore.addEntry('mod_forkawesome', __dirname + '/Resources/public/modules/forkawesome/index.js');
encore.addEntry('mod_bootstrap', __dirname + '/Resources/public/modules/bootstrap/index.js');
buildCKEditor(encore);
encore.addEntry('mod_ckeditor5', __dirname + '/Resources/public/modules/ckeditor5/index.js');
// Vue entrypoints
encore.addEntry('vue_address', __dirname + '/Resources/public/vuejs/Address/index.js');
};