diff --git a/package.json b/package.json index 55e4ef2..aaf1a2b 100644 --- a/package.json +++ b/package.json @@ -15,23 +15,25 @@ "dist" ], "devDependencies": { - "audio-buffer-utils": "^3.1.2", + "@babel/core": "^7.7.7", + "@babel/preset-env": "^7.7.7", + "audio-buffer-utils": "^5.1.2", "audio-context": "^1.0.3", "babel-core": "^6.18.2", - "babel-loader": "^6.2.8", + "babel-loader": "^8.0.6", "babel-plugin-transform-runtime": "^6.15.0", "babel-preset-es2015": "^6.14.0", "babel-runtime": "^6.18.0", - "brfs": "^1.4.3", + "brfs": "^2.0.2", "bytebuffer": "^5.0.1", - "css-loader": "^0.26.0", + "css-loader": "^3.4.0", "dompurify": "^0.8.9", "drop-stream": "^1.0.0", "duplex-maker": "^1.0.0", - "extract-loader": "^0.1.0", - "file-loader": "^0.9.0", + "extract-loader": "^3.1.0", + "file-loader": "^4.3.0", "getusermedia": "^2.0.0", - "html-loader": "^0.4.4", + "html-loader": "^0.5.5", "json-loader": "^0.5.4", "keyboardjs": "^2.3.4", "knockout": "^3.4.0", @@ -46,12 +48,19 @@ "to-arraybuffer": "^1.0.1", "transform-loader": "^0.2.3", "voice-activity-detection": "johni0702/voice-activity-detection#9f8bd90", - "webpack": "^1.13.3", - "webworkify-webpack": "^1.1.8", + "webpack": "^4.41.4", + "webpack-cli": "^3.3.10", + "webworkify-webpack": "^2.1.5", "libsamplerate.js": "^1.0.0", "mumble-client-codecs-browser": "^1.2.0", "mumble-client-websocket": "^1.0.0", "mumble-client": "^1.3.0", "web-audio-buffer-queue": "^1.1.0" - } + }, + "dependencies": { + "@babel/plugin-transform-runtime": "^7.7.6", + "@babel/runtime": "^7.7.7", + "fs": "0.0.1-security" + }, + "optionalDependencies": {} } diff --git a/webpack.config.js b/webpack.config.js index 44d4087..9f41a6e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,70 +1,53 @@ -var theme = 'MetroMumbleLight' - -var path = require('path') +var path = require('path'); module.exports = { + mode: 'development', entry: { index: [ './app/index.js', './app/index.html' ], - config: './app/config.js', - theme: './app/theme.js', - matrix: './app/matrix.js' + config: './app/config.js' }, output: { - filename: '[name].js', - path: './dist' + path: path.join(__dirname, 'dist'), + filename: '[name].js' }, module: { - postLoaders: [ - { - include: /mumble-streams\/lib\/data.js/, - loader: 'transform-loader?brfs' - } - ], - loaders: [ + rules: [ { test: /\.js$/, exclude: /node_modules/, - loader: 'babel-loader', - query: { - presets: ['es2015'], - plugins: ['transform-runtime'] + use: { + loader: 'babel-loader', + options: { + presets: ['@babel/preset-env'], + plugins: ['@babel/plugin-transform-runtime'] + } } }, { test: /\.html$/, - loaders: [ + use: [ 'file-loader?name=[name].[ext]', 'extract-loader', 'html-loader?' + JSON.stringify({ attrs: ['img:src', 'link:href'], - interpolate: 'require', - root: theme + interpolate: 'require' }) ] }, { test: /\.css$/, - loaders: [ + use: [ 'file-loader', 'extract-loader', 'css-loader' ] }, - { - test: /\.scss$/, - loaders: [ - 'file-loader?name=[hash].css', - 'extract-loader', - 'css-loader', - 'sass-loader' - ] - }, { test: /manifest\.json$|\.xml$/, - loaders: [ + use: [ 'file-loader', 'extract-loader', 'regexp-replace-loader?' + JSON.stringify({ @@ -78,30 +61,24 @@ module.exports = { ] }, { - test: /\.json$/, - exclude: /manifest\.json$/, - loader: 'json-loader' + test: /\.(svg|png|ico)$/, + use: [ + 'file-loader' + ] }, { - test: /\.(svg|png|ico)$/, - loader: 'file-loader' + enforce: 'post', + test: /mumble-streams\/lib\/data.js/, + use: [ + 'transform-loader?brfs' + ] } ] }, resolve: { alias: { webworkify: 'webworkify-webpack' - }, - root: [ - path.resolve('./themes/') - ] - }, - includes: { - pattern: function (filepath) { - return { - re: /#require\((.+)\)/, - index: 1 - } } - } + }, + target: 'web' }