const CopyWebpackPlugin = require('copy-webpack-plugin'); const path = require('path'); const ScratchWebpackConfigBuilder = require('scratch-webpack-configuration'); const common = { libraryName: 'scratch-svg-renderer', rootPath: path.resolve(__dirname) }; /** * @type {import('webpack').Configuration} */ const nodeConfig = new ScratchWebpackConfigBuilder(common) .setTarget('node') .merge({ output: { library: { name: 'ScratchSVGRenderer', type: 'umd' } } }) .get(); /** * @type {import('webpack').Configuration} */ const webConfig = new ScratchWebpackConfigBuilder(common) .setTarget('browserslist') .merge({ output: { library: { name: 'ScratchSVGRenderer', type: 'umd' } } }) .get(); /** * @type {import('webpack').Configuration} */ const playgroundConfig = new ScratchWebpackConfigBuilder(common) .setTarget('browserslist') .merge({ devServer: { contentBase: false, port: process.env.PORT || 8576 }, output: { path: path.resolve(__dirname, 'playground'), library: { name: 'ScratchSVGRenderer', type: 'umd' }, publicPath: '/' } }) .addPlugin( new CopyWebpackPlugin([ { from: 'src/playground' } ]) ) .get(); module.exports = [ nodeConfig, webConfig, playgroundConfig ];