From e52f0f9c98f85b894292b3e38dbee560a4af0bf7 Mon Sep 17 00:00:00 2001 From: shuse2 Date: Wed, 10 Aug 2022 22:51:33 +0200 Subject: [PATCH] :recycle: Update lisk-client build script --- elements/lisk-client/package.json | 4 +- elements/lisk-client/scripts/build.js | 116 ++++++++++-------- .../package.json | 6 +- .../lisk-framework-faucet-plugin/package.json | 6 +- 4 files changed, 70 insertions(+), 62 deletions(-) diff --git a/elements/lisk-client/package.json b/elements/lisk-client/package.json index 7d86f6c7f6b..b8b7597a2e8 100644 --- a/elements/lisk-client/package.json +++ b/elements/lisk-client/package.json @@ -20,9 +20,9 @@ "node": ">=16.14.1 <=16", "npm": ">=8.1.0" }, - "main": "dist-browser/index.js", + "main": "dist-node/index.js", "exports": { - ".": "./dist-browser/index.js", + ".": "./dist-node/index.js", "./node": "./dist-node/index.js", "./browser": "./dist-browser/index.js" }, diff --git a/elements/lisk-client/scripts/build.js b/elements/lisk-client/scripts/build.js index 59e978c882c..bde595140e9 100644 --- a/elements/lisk-client/scripts/build.js +++ b/elements/lisk-client/scripts/build.js @@ -16,61 +16,77 @@ const browserify = require('browserify'); const fs = require('fs'); -// All dependencies are indirectly existing from browserify -const b = browserify('./dist-node/index.js', { - builtins: { - assert: require.resolve('assert/'), - buffer: require.resolve('buffer/'), - child_process: require.resolve('./_empty.js'), - cluster: require.resolve('./_empty.js'), - console: require.resolve('console-browserify'), - constants: require.resolve('constants-browserify'), - crypto: require.resolve('crypto-browserify'), - dgram: require.resolve('./_empty.js'), - dns: require.resolve('./_empty.js'), - domain: require.resolve('domain-browser'), - events: require.resolve('events/'), - fs: require.resolve('./_empty.js'), - http: require.resolve('stream-http'), - https: require.resolve('https-browserify'), - http2: require.resolve('./_empty.js'), - inspector: require.resolve('./_empty.js'), - module: require.resolve('./_empty.js'), - net: require.resolve('./_empty.js'), - os: require.resolve('os-browserify/browser.js'), - path: require.resolve('path-browserify'), - perf_hooks: require.resolve('./_empty.js'), - punycode: require.resolve('punycode/'), - querystring: require.resolve('querystring-es3/'), - readline: require.resolve('./_empty.js'), - repl: require.resolve('./_empty.js'), - stream: require.resolve('stream-browserify'), - _stream_duplex: require.resolve('readable-stream/duplex.js'), - _stream_passthrough: require.resolve('readable-stream/passthrough.js'), - _stream_readable: require.resolve('readable-stream/readable.js'), - _stream_transform: require.resolve('readable-stream/transform.js'), - _stream_writable: require.resolve('readable-stream/writable.js'), - string_decoder: require.resolve('string_decoder/'), - sys: require.resolve('util/util.js'), - timers: require.resolve('timers-browserify'), - tls: require.resolve('./_empty.js'), - tty: require.resolve('tty-browserify'), - url: require.resolve('url/'), - util: require.resolve('util/util.js'), - vm: require.resolve('vm-browserify'), - zlib: require.resolve('browserify-zlib'), - _process: require.resolve('process/browser'), - zeromq: require.resolve('./_empty.js'), - }, - standalone: 'lisk', -}); - const bundle = () => { const browserDir = './dist-browser'; if (!fs.existsSync(browserDir)) { fs.mkdirSync(browserDir); } - b.bundle().on('error', console.error).pipe(fs.createWriteStream('./dist-browser/index.js')); + // https://github.com/browserify/browserify/pull/1826 + // Browserify will ignore the buildins when "browser" field is specified + // To migigate this problem, package.json is copied and updated to remove the browser, so that during the package build, browser field is ignored + fs.copyFileSync('./package.json', './package.json.bak'); + const packageJSON = JSON.parse(fs.readFileSync('./package.json', 'utf-8')); + delete packageJSON.browser; + + fs.writeFileSync('./package.json', JSON.stringify(packageJSON, undefined, '\t')); + + // All dependencies are indirectly existing from browserify + const b = browserify('./dist-node/index.js', { + builtins: { + assert: require.resolve('assert/'), + buffer: require.resolve('buffer/'), + child_process: require.resolve('./_empty.js'), + cluster: require.resolve('./_empty.js'), + console: require.resolve('console-browserify'), + constants: require.resolve('constants-browserify'), + crypto: require.resolve('crypto-browserify'), + dgram: require.resolve('./_empty.js'), + dns: require.resolve('./_empty.js'), + domain: require.resolve('domain-browser'), + events: require.resolve('events/'), + fs: require.resolve('./_empty.js'), + http: require.resolve('stream-http'), + https: require.resolve('https-browserify'), + http2: require.resolve('./_empty.js'), + inspector: require.resolve('./_empty.js'), + module: require.resolve('./_empty.js'), + net: require.resolve('./_empty.js'), + os: require.resolve('os-browserify/browser.js'), + path: require.resolve('path-browserify'), + perf_hooks: require.resolve('./_empty.js'), + punycode: require.resolve('punycode/'), + querystring: require.resolve('querystring-es3/'), + readline: require.resolve('./_empty.js'), + repl: require.resolve('./_empty.js'), + stream: require.resolve('stream-browserify'), + _stream_duplex: require.resolve('readable-stream/duplex.js'), + _stream_passthrough: require.resolve('readable-stream/passthrough.js'), + _stream_readable: require.resolve('readable-stream/readable.js'), + _stream_transform: require.resolve('readable-stream/transform.js'), + _stream_writable: require.resolve('readable-stream/writable.js'), + string_decoder: require.resolve('string_decoder/'), + sys: require.resolve('util/util.js'), + timers: require.resolve('timers-browserify'), + tls: require.resolve('./_empty.js'), + tty: require.resolve('tty-browserify'), + url: require.resolve('url/'), + util: require.resolve('util/util.js'), + vm: require.resolve('vm-browserify'), + zlib: require.resolve('browserify-zlib'), + _process: require.resolve('process/browser'), + zeromq: require.resolve('./_empty.js'), + }, + standalone: 'lisk', + browserField: false, + }); + + b.bundle() + .on('end', () => { + fs.copyFileSync('./package.json.bak', './package.json'); + fs.rmSync('./package.json.bak'); + }) + .on('error', console.error) + .pipe(fs.createWriteStream('./dist-browser/index.js')); }; if (process.env.NODE_ENV) { diff --git a/framework-plugins/lisk-framework-dashboard-plugin/package.json b/framework-plugins/lisk-framework-dashboard-plugin/package.json index e859d6f4db6..6afc19a0485 100644 --- a/framework-plugins/lisk-framework-dashboard-plugin/package.json +++ b/framework-plugins/lisk-framework-dashboard-plugin/package.json @@ -35,7 +35,7 @@ "build": "npm run build:node && npm run build:web", "build:node": "tsc", "build:web": "parcel build --dist-dir build public/index.html", - "start:web": "parcel public/index.html", + "start:web": "parcel --dist-dir build public/index.html", "build:check": "node -e \"require('./dist-node')\"" }, "dependencies": { @@ -99,9 +99,5 @@ ], "targets": { "main": false - }, - "alias": { - "zeromq": "./_empty.js", - "@chainsafe/blst": "./_empty.js" } } diff --git a/framework-plugins/lisk-framework-faucet-plugin/package.json b/framework-plugins/lisk-framework-faucet-plugin/package.json index 90e40b07ad7..5d0d6bd5278 100644 --- a/framework-plugins/lisk-framework-faucet-plugin/package.json +++ b/framework-plugins/lisk-framework-faucet-plugin/package.json @@ -36,7 +36,7 @@ "build": "npm run build:node && npm run build:web", "build:node": "tsc", "build:web": "parcel build --dist-dir build public/index.html", - "start:web": "parcel public/index.html", + "start:web": "parcel --dist-dir build public/index.html", "build:check": "node -e \"require('./dist-node')\"" }, "dependencies": { @@ -102,9 +102,5 @@ ], "targets": { "main": false - }, - "alias": { - "zeromq": "./_empty.js", - "@chainsafe/blst": "./_empty.js" } }