scada.js
scada.js copied to clipboard
Compile backend Nodejs scripts via Vercel
Description:
Compile backend scripts via Vercel in order to improve Ram and CPU usage
https://github.com/vercel/ncc
ncc puts all the files in one folder.
[1] For livescript, if you are compiling into dist folder, I suggest you create a seperate bundle folder.
[2] since I use a package.yaml instead of a package.json I use yq to change the entry file for nodejs.
[3] and then after ncc ...., I go back to normal.
It's all there in my makefile as below :
ncc:
yq w -i src/package.yaml bin.remotemon 'bundle/index.js' # [2]
lsc --no-header -cbo dist src
lsc -cb test
yaml2json -p src/package.yaml > package.json
ncc --minify build ./dist/cmdline.js -o ./bundle # [1]
yq w -i src/package.yaml bin.remotemon 'dist/cmdline.js' # [3]
I compared the timing with rust's exa program, it's x10 slower, but that is better than x60.
rust `exa` | 0.02s | 1
nodejs + ncc | 0.2s | 10x
nodejs | 1.2s | 60x