import fs from 'fs'; import path from 'path'; import { merge } from 'webpack-merge'; import { WebpackPluginServe } from 'webpack-plugin-serve'; // todo: https://github.com/trezor/trezor-suite/issues/5305 import prod from './prod.webpack.config'; import iframe from '../../connect-iframe/webpack/iframe.webpack.config'; import popup from '../../connect-popup/webpack/prod.webpack.config'; // todo: https://github.com/trezor/trezor-suite/issues/5305 const dev = { mode: 'development', watch: true, devtool: 'eval-source-map', entry: { 'trezor-connect': path.resolve(__dirname, '../src/index.ts'), }, output: { filename: 'js/[name].js', path: path.resolve(__dirname, '../build'), publicPath: './', library: 'TrezorConnect', libraryTarget: 'umd', libraryExport: 'default', }, plugins: [ new WebpackPluginServe({ port: process.env.PORT ? parseInt(process.env.PORT) : 8088, hmr: true, https: process.env.NO_HTTPS === 'true' ? undefined : { key: fs.readFileSync(path.join(__dirname, '../webpack/connect_dev.key')), cert: fs.readFileSync(path.join(__dirname, '../webpack/connect_dev.crt')), }, static: [ path.join(__dirname, '../build'), path.join(__dirname, '../../connect-popup/build'), path.join(__dirname, '../../connect-iframe/build'), ], }), ], }; export default merge([iframe, popup, prod, dev]);