UNPKG

aico-image-editor

Version:

Combine multiple image into and create single combined image

162 lines (150 loc) 4.2 kB
const path = require('path'); const webpack = require('webpack'); // const devMiddleware = require("webpack-dev-middleware"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); // const BrowserSyncPlugin = require('browser-sync-webpack-plugin'); // const dev = process.env.NODE_ENV !== 'production' module.exports = { devtool: 'source-map', plugins: [ new MiniCssExtractPlugin({filename: './css/[name].css'}), // new webpack.DefinePlugin({ // 'process.env.APP_URL': JSON.stringify('http://127.0.0.1') // }) ], entry: { // app: [ // './src/js/app.js', // './src/scss/store-locator-main.scss', // './src/scss/store-locator-custom.scss' // ], index: { import: './src/index.js', filename: "./js/[name].js", library: { // note there's no `name` here name: 'aicoEditor', type: 'umd', }, }, main: {import: './src/scss/main.scss'}, custom: {import: './src/scss/custom.scss'}, }, output: { path: path.resolve(__dirname, './output/'), //publicPath: 'http://localhost:5700/output/', filename: "[name].js", //chunkFilename: 'js/aico-image-editor/[id].js', clean: true, }, module: { rules: [ { test: /\.html$/i, type: 'asset/source', }, { test: /\.(sass|scss)$/, use: [ { loader: 'style-loader', }, { loader: MiniCssExtractPlugin.loader, options: { esModule: false, publicPath: '../' }, }, { loader: 'css-loader', options: { //sourceMap: false, sourceMap: true, }, }, { loader: 'sass-loader', options: { api: "modern", implementation: require("sass"), sourceMap: true, sassOptions: { //outputStyle: 'compressed' //includePaths: [path.resolve(__dirname, 'node_modules')] } }, }, ] }, { test: /\.css$/i, use: [ { loader: 'css-loader', options: { sourceMap: true, exportType: "css-style-sheet" } } ], }, { test: /\.(ttf|woff|woff2|eot|svg)$/, exclude: /node_modules/, include: [path.resolve(__dirname, "fonts")], type: 'asset/resource', generator: { filename: 'fonts/aico-image-editor/[name][ext]', //publicPath: process.env.APP_URL + '/' } }, { test: /\.(jpg|png|svg|gif)$/, exclude: /node_modules/, include: [path.resolve(__dirname, "images")], type: 'asset/resource', generator: { filename: 'images/aico-image-editor/[name][ext]', //publicPath: process.env.APP_URL + '/' } }, ] }, externals: [ { 'bootstrap/js/dist/dropdown': 'bootstrap.Dropdown', 'bootstrap/js/dist/tab': 'bootstrap.Tab', 'bootstrap/js/dist/tooltip': 'bootstrap.Tooltip', 'bootstrap/js/dist/modal': 'bootstrap.Modal', 'alpinejs': 'Alpine', '@alpinejs/persist': 'persist', '@alpinejs/intersect': 'intersect', 'fabric': 'fabric' } ], // optimization: { // splitChunks: { // chunks: 'all', // cacheGroups: { // vendor: { // test: /[\\/]node_modules[\\/]/, // name: 'vendors', // chunks: 'all', // maxSize: 500000, // Limit vendor chunks to 500KB // }, // styles: { // test: /(\.css)$/, // Matches any CSS file // name: 'styles', // chunks: 'all', // enforce: true, // Ensures that the chunk is created even if it's not larger than minSize // maxSize: 500000, // Limit the chunk size to 200KB // }, // }, // }, // }, //externalsType: 'commonjs' // snapshot: { // managedPaths: [], // } };