57 lines
1.1 KiB
JavaScript
57 lines
1.1 KiB
JavaScript
|
const path = require('path');
|
||
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||
|
const CopyPlugin = require('copy-webpack-plugin');
|
||
|
|
||
|
module.exports = {
|
||
|
entry: {
|
||
|
index: './src/ts/index.ts',
|
||
|
supportedBrowsers: './src/ts/supportedBrowsers.ts',
|
||
|
utils: './src/ts/utils.ts',
|
||
|
},
|
||
|
module: {
|
||
|
rules: [
|
||
|
{
|
||
|
test: /\.ts$/,
|
||
|
exclude: /node_modules/,
|
||
|
use: {
|
||
|
loader: "babel-loader",
|
||
|
options: {
|
||
|
presets: ['@babel/preset-env', '@babel/preset-typescript'],
|
||
|
plugins: ['@babel/plugin-transform-runtime'],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
test: /\.hbs$/,
|
||
|
exclude: /node_modules/,
|
||
|
use: {
|
||
|
loader: 'handlebars-loader',
|
||
|
options: {
|
||
|
knownHelpersOnly: false,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
plugins: [
|
||
|
new HtmlWebpackPlugin(),
|
||
|
new CopyPlugin({
|
||
|
patterns: [
|
||
|
{ from: 'translations', to: 'translations' },
|
||
|
],
|
||
|
}),
|
||
|
],
|
||
|
resolve: {
|
||
|
extensions: ['.js', '.ts'],
|
||
|
},
|
||
|
output: {
|
||
|
filename: '[name].[contenthash].js',
|
||
|
chunkFilename: '[name].[contenthash].chunk.js',
|
||
|
path: path.resolve(__dirname, 'dist'),
|
||
|
clean: true,
|
||
|
},
|
||
|
experiments: {
|
||
|
topLevelAwait: true,
|
||
|
},
|
||
|
};
|