Skip to content
This repository has been archived by the owner on Jun 11, 2024. It is now read-only.

Commit

Permalink
♻️ Update lisk-client build script
Browse files Browse the repository at this point in the history
  • Loading branch information
shuse2 committed Aug 10, 2022
1 parent e133f91 commit e52f0f9
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 62 deletions.
4 changes: 2 additions & 2 deletions elements/lisk-client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
},
Expand Down
116 changes: 66 additions & 50 deletions elements/lisk-client/scripts/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down Expand Up @@ -99,9 +99,5 @@
],
"targets": {
"main": false
},
"alias": {
"zeromq": "./_empty.js",
"@chainsafe/blst": "./_empty.js"
}
}
6 changes: 1 addition & 5 deletions framework-plugins/lisk-framework-faucet-plugin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down Expand Up @@ -102,9 +102,5 @@
],
"targets": {
"main": false
},
"alias": {
"zeromq": "./_empty.js",
"@chainsafe/blst": "./_empty.js"
}
}

0 comments on commit e52f0f9

Please sign in to comment.