const path = require('path'); const CopyPlugin = require("copy-webpack-plugin"); module.exports = { entry: './src/script.js', output: { filename: 'script.js', path: path.resolve(__dirname, 'dist/widget'), library: { type: 'amd', export: 'default', }, clean: true, }, externals: { jquery: 'jquery', moment: 'moment', 'lib/components/base/modal': 'lib/components/base/modal' }, resolve: { alias: { api: path.resolve(__dirname, 'src/api.js'), models: path.resolve(__dirname, 'src/models'), store: path.resolve(__dirname, 'src/store.js'), components: path.resolve(__dirname, 'src/components/'), utils: path.resolve(__dirname, 'src/utils/'), }, }, plugins: [ new CopyPlugin({ patterns: [ { from: "static" }, ], }), ], module: { rules: [ { test: /\.m?js$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'] } } }, { test: /\.twig$/, use: 'raw-loader', }, { test: /\.css$/i, use: [ "style-loader", "css-loader" ], }, { test: /\.s[ac]ss$/i, use: [ "style-loader", "css-loader", "sass-loader", ], }, ], }, };