UNPKG

@smartrep/web-widget

Version:

Client side library to load the web widget

152 lines (150 loc) 4.1 kB
const path = require('path'); const { version } = require('./package.json'); const sass = require('sass'); module.exports = [ { // entry: ['babel-polyfill', './index.js'], entry: './umd.js', output: { path: path.join(__dirname, '/lib'), filename: 'index.js', library: 'WebChat', libraryTarget: 'umd', clean: true }, resolve: { extensions: ['.js', '.jsx'] }, mode: 'production', module: { rules: [ { test: /\.(js|jsx)$/, exclude: /node_modules\/(?!(micromark-|unist-|mdast-|remark-|react-markdown\/|\.pnpm\/react-markdown@|decode-named-character-reference|character-entities|ccount|comma-separated-tokens|parse-entities|stringify-entities|is-alphabetical|is-alphanumerical|is-decimal|is-hexadecimal|is-whitespace-character|markdown-table|trim-lines|zwitch)\/).*/, use: [ { loader: 'string-replace-loader', options: { search: 'PACKAGE_VERSION_TO_BE_REPLACED', replace: version } }, { loader: 'babel-loader' } ] }, { test: /\.scss$/, use: [ { loader: 'style-loader' }, { loader: 'css-loader' }, { loader: 'sass-loader', options: { implementation: sass, api: 'modern-compiler', sassOptions: { loadPaths: [path.resolve(__dirname, 'src/scss/')] } } } ] }, { test: /\.css$/, use: ['style-loader', 'css-loader'] }, { test: /\.(jpg|png|gif|svg|woff|ttf|eot)$/, type: 'asset', parser: { dataUrlCondition: { maxSize: 8 * 1024 // 8kb } } } ] }, plugins: [] }, { entry: './index.js', externals: { react: { root: 'React', commonjs2: 'react', commonjs: 'react', amd: 'react', umd: 'react' }, 'react-dom': { root: 'ReactDOM', commonjs2: 'react-dom', commonjs: 'react-dom', amd: 'react-dom', umd: 'react-dom' } }, output: { path: path.join(__dirname, '/lib'), filename: 'index.js', library: 'WebChat', libraryTarget: 'umd', clean: true }, resolve: { extensions: ['.js', '.jsx'] }, mode: 'production', module: { rules: [ { test: /\.(js|jsx)$/, exclude: /node_modules\/(?!(micromark-|unist-|mdast-|remark-|react-markdown\/|\.pnpm\/react-markdown@|decode-named-character-reference|character-entities|ccount|comma-separated-tokens|parse-entities|stringify-entities|is-alphabetical|is-alphanumerical|is-decimal|is-hexadecimal|is-whitespace-character|markdown-table|trim-lines|zwitch)\/).*/, use: [ { loader: 'string-replace-loader', options: { search: 'PACKAGE_VERSION_TO_BE_REPLACED', replace: version } }, { loader: 'babel-loader' } ] }, { test: /\.scss$/, use: [ { loader: 'style-loader' }, { loader: 'css-loader' }, { loader: 'sass-loader', options: { implementation: sass, api: 'modern-compiler', sassOptions: { loadPaths: [path.resolve(__dirname, 'src/scss/')] } } } ] }, { test: /\.css$/, use: ['style-loader', 'css-loader'] }, { test: /\.(jpg|png|gif|svg|woff|ttf|eot)$/, type: 'asset', parser: { dataUrlCondition: { maxSize: 8 * 1024 // 8kb } } } ] }, plugins: [] } ];