Image_Editor / apps /image-editor /webpack.common.config.js
Fanu2's picture
Deploy full app to HF Space
b456468
/* eslint-disable */
const path = require('path');
const ESLintPlugin = require('eslint-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = ({ minify, WEBPACK_BUILD }) => ({
entry: './src/index.js',
output: {
library: {
export: 'default',
type: 'umd',
name: ['tui', 'ImageEditor'],
},
path: path.resolve('dist'),
publicPath: '/dist',
filename: `tui-image-editor${minify ? '.min' : ''}.js`,
},
resolve: {
alias: {
'@': path.resolve('src/js'),
'@css': path.resolve('src/css'),
'@svg': path.resolve('src/svg'),
},
},
externals: [
{
'tui-code-snippet': {
commonjs: 'tui-code-snippet',
commonjs2: 'tui-code-snippet',
amd: 'tui-code-snippet',
root: ['tui', 'util'],
},
'tui-color-picker': {
commonjs: 'tui-color-picker',
commonjs2: 'tui-color-picker',
amd: 'tui-color-picker',
root: ['tui', 'colorPicker'],
},
},
],
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
options: {
rootMode: 'upward',
},
},
{
test: /\.styl$/,
use: [MiniCssExtractPlugin.loader, 'css-loader', 'stylus-loader'],
},
{
test: /\.svg$/,
type: 'asset/inline',
},
],
},
plugins: [
new ESLintPlugin({
extensions: ['js'],
failOnError: WEBPACK_BUILD,
}),
new MiniCssExtractPlugin({
filename: `tui-image-editor${minify ? '.min' : ''}.css`,
}),
],
});