| const webpack = require('webpack')
|
| const path = require('path')
|
| const CopyPlugin = require('copy-webpack-plugin')
|
| const HtmlWebpackPlugin = require('html-webpack-plugin')
|
| const WorkboxPlugin = require('workbox-webpack-plugin')
|
|
|
|
|
| const config = {
|
| entry: path.resolve(__dirname, './index.js'),
|
| output: {
|
| path: path.resolve(__dirname, './public'),
|
| filename: './index.js',
|
| publicPath: './'
|
| },
|
| resolve: {
|
| alias: {
|
| 'minecraft-protocol': path.resolve(
|
| __dirname,
|
| 'node_modules/minecraft-protocol/src/index.js'
|
| ),
|
| express: false,
|
| net: 'net-browserify',
|
| fs: false,
|
| jose: false,
|
| '@azure/msal-node': false
|
| },
|
| fallback: {
|
| jose: false,
|
| zlib: require.resolve('browserify-zlib'),
|
| stream: require.resolve('stream-browserify'),
|
| buffer: require.resolve('buffer/'),
|
| events: require.resolve('events/'),
|
| assert: require.resolve('assert/'),
|
| crypto: require.resolve('crypto-browserify'),
|
| path: require.resolve('path-browserify'),
|
| constants: require.resolve('constants-browserify'),
|
| os: require.resolve('os-browserify/browser'),
|
| http: require.resolve('http-browserify'),
|
| https: require.resolve('https-browserify'),
|
| timers: require.resolve('timers-browserify'),
|
|
|
| child_process: false,
|
| tls: false,
|
| perf_hooks: path.resolve(__dirname, 'lib/perf_hooks_replacement.js'),
|
| dns: path.resolve(__dirname, 'lib/dns.js')
|
| }
|
| },
|
| plugins: [
|
| new HtmlWebpackPlugin({
|
| template: 'index.html',
|
| hash: true,
|
| minify: false
|
| }),
|
|
|
| new webpack.ProvidePlugin({
|
| process: 'process/browser'
|
| }),
|
| new webpack.ProvidePlugin({
|
| Buffer: ['buffer', 'Buffer']
|
| }),
|
| new webpack.NormalModuleReplacementPlugin(
|
| /prismarine-viewer[/|\\]viewer[/|\\]lib[/|\\]utils/,
|
| './utils.web.js'
|
| ),
|
| new WorkboxPlugin.GenerateSW({
|
|
|
|
|
| clientsClaim: true,
|
| skipWaiting: true,
|
| include: ['index.html', 'manifest.json']
|
| }),
|
| new CopyPlugin({
|
| patterns: [
|
| { from: path.join(__dirname, '/styles.css'), to: './styles.css' },
|
| { from: path.join(__dirname, '/node_modules/prismarine-viewer/public/blocksStates/'), to: './blocksStates/' },
|
| { from: path.join(__dirname, '/node_modules/prismarine-viewer/public/textures/'), to: './textures/' },
|
| { from: path.join(__dirname, '/node_modules/prismarine-viewer/public/worker.js'), to: './' },
|
| { from: path.join(__dirname, 'assets/'), to: './' },
|
| { from: path.join(__dirname, 'extra-textures/'), to: './extra-textures/' },
|
| { from: path.join(__dirname, 'config.json'), to: './config.json' }
|
| ]
|
| })
|
| ]
|
| }
|
|
|
| module.exports = config
|
|
|