editor_advanced_image-8.x-2.x-dev/webpack.config.js
webpack.config.js
const path = require("path"); const fs = require("fs"); const webpack = require("webpack"); const { styles, builds } = require("@ckeditor/ckeditor5-dev-utils"); const TerserPlugin = require("terser-webpack-plugin"); function getDirectories(srcpath) { return fs .readdirSync(srcpath) .filter((item) => fs.statSync(path.join(srcpath, item)).isDirectory()); } module.exports = []; // Loop through every subdirectory in src, each a different plugin, and build // each one in ./build. getDirectories("./js/ckeditor5_plugins").forEach((dir) => { const bc = { mode: "production", optimization: { minimize: true, minimizer: [ new TerserPlugin({ terserOptions: { format: { comments: false, }, }, test: /\.js(\?.*)?$/i, extractComments: false, }), ], moduleIds: "named", }, entry: { path: path.resolve( __dirname, "js/ckeditor5_plugins", dir, "src/index.js", ), }, output: { path: path.resolve(__dirname, "./js/build"), filename: `${dir}.js`, library: ["CKEditor5", dir], libraryTarget: "umd", libraryExport: "default", }, plugins: [ new webpack.DllReferencePlugin({ manifest: require("./node_modules/ckeditor5/build/ckeditor5-dll.manifest.json"), // eslint-disable-line global-require, import/no-unresolved scope: "ckeditor5/src", name: "CKEditor5.dll", }), ], module: { rules: [{ test: /\.svg$/, use: "raw-loader" }], }, }; module.exports.push(bc); });