From 06dba1f2749c6b3efd825bca6130a30b3c9e1636 Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Thu, 4 Nov 2021 13:24:40 +0300 Subject: [PATCH] chore(wallet-lib): update webpack to v.5 --- packages/wallet-lib/karma.conf.js | 22 +++++++++++++++++++--- packages/wallet-lib/package.json | 20 ++++++++++++++++---- packages/wallet-lib/webpack.config.js | 18 ++++++++++++++---- 3 files changed, 49 insertions(+), 11 deletions(-) diff --git a/packages/wallet-lib/karma.conf.js b/packages/wallet-lib/karma.conf.js index 48df3422f8c..a729d6e5a7a 100644 --- a/packages/wallet-lib/karma.conf.js +++ b/packages/wallet-lib/karma.conf.js @@ -21,13 +21,29 @@ module.exports = (config) => { mode: 'development', devtool: 'inline-source-map', plugins: [ + new webpack.ProvidePlugin({ + Buffer: ['buffer', 'Buffer'], + process: 'process/browser', + }), new webpack.EnvironmentPlugin( dotenvResult.parsed, ), ], - node: { - // Prevent embedded winston to throw error with FS not existing. - fs: 'empty', + resolve: { + fallback: { + fs: false, + crypto: require.resolve('crypto-browserify'), + buffer: require.resolve('buffer/'), + assert: require.resolve('assert/'), + url: require.resolve('url/'), + path: require.resolve('path-browserify'), + http: require.resolve('stream-http'), + https: require.resolve('https-browserify'), + stream: require.resolve('stream-browserify'), + util: require.resolve('util/'), + os: require.resolve('os-browserify/browser'), + zlib: require.resolve('browserify-zlib'), + }, }, }, reporters: ['mocha'], diff --git a/packages/wallet-lib/package.json b/packages/wallet-lib/package.json index b43c5b7c53f..66c230a0f19 100644 --- a/packages/wallet-lib/package.json +++ b/packages/wallet-lib/package.json @@ -5,7 +5,7 @@ "main": "src/index.js", "unpkg": "dist/wallet-lib.min.js", "scripts": { - "build": "webpack --display-error-details", + "build": "webpack --stats-error-details", "lint": "eslint .", "lint:fix": "eslint . --fix", "test:unit": "nyc mocha 'src/**/*.spec.js'", @@ -49,25 +49,37 @@ "winston": "^3.2.1" }, "devDependencies": { + "assert": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^6.0.3", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", + "crypto-browserify": "^3.12.0", "dotenv-safe": "^8.2.0", "eslint": "^6.8.0", "eslint-config-airbnb-base": "^14.0.0", "eslint-plugin-import": "^2.20.1", + "https-browserify": "^1.0.0", "karma": "^5.0.9", "karma-chai": "^0.1.0", "karma-chrome-launcher": "^3.1.0", "karma-mocha": "^2.0.1", "karma-mocha-reporter": "^2.2.5", "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^4.0.2", + "karma-webpack": "^5.0.0", "localforage": "^1.7.3", "mocha": "^7.2.0", "node-inspect-extracted": "1.0.7", "nyc": "^15.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "process": "^0.11.10", "sinon": "^9.0.3", - "webpack": "^4.43.0", - "webpack-cli": "^3.3.11" + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "url": "^0.11.0", + "util": "^0.12.4", + "webpack": "^5.59.1", + "webpack-cli": "^4.9.1" } } diff --git a/packages/wallet-lib/webpack.config.js b/packages/wallet-lib/webpack.config.js index 6bc78e8b0c6..19beb081530 100644 --- a/packages/wallet-lib/webpack.config.js +++ b/packages/wallet-lib/webpack.config.js @@ -4,10 +4,6 @@ const webConfig = { entry: './src/index.js', mode: 'production', target: 'web', - node: { - // Prevent embedded winston to throw error with FS not existing. - fs: 'empty', - }, output: { path: path.resolve(__dirname, 'dist'), libraryTarget: 'umd', @@ -16,6 +12,20 @@ const webConfig = { globalObject: "(typeof self !== 'undefined' ? self : this)", }, resolve: { + fallback: { + fs: false, + crypto: require.resolve('crypto-browserify'), + buffer: require.resolve('buffer/'), + assert: require.resolve('assert/'), + url: require.resolve('url/'), + path: require.resolve('path-browserify'), + http: require.resolve('stream-http'), + https: require.resolve('https-browserify'), + stream: require.resolve('stream-browserify'), + util: require.resolve('util/'), + os: require.resolve('os-browserify/browser'), + zlib: require.resolve('browserify-zlib'), + }, extensions: ['.ts', '.js', '.json'], }, };