scroungejs
[!WARNING]
This application is not suitable for production and is missing many tests, if you plan on using it, you are on you own.


An obscure build tool starting as an emacs elisp script in 2009. Scroungejs was used by foxsports.com and ties.com.

A test configuration is found in spec/
. Below is a config with common options. All options are optional and if you're unsure about an option, you likely don't need it.
await scroungejs({
version: process.env.npm_package_version,
inputpath: './src/',
outputpath: './build/',
iscompress: true,
isconcat: false,
basepagein: './src/index.tpl.html',
basepage: './build/index.html',
prependarr: [{
treename: 'app.js',
sourcearr: [
'./node_modules/three/build/three.js',
'./node_modules/hls.js/dist/hls.min.js'
]
}],
skipdeparr: [
'/hls.js'
],
treearr: [
'app.js',
'app.css'
]
})
The example in test/
console-prints something like this when it runs,
[...] start: Tue Apr 03 2018 23:12:23 GMT-0700 (PDT)
[...] root: app.js
scroungejs-1.3.6:~/test/src/app.js
└─┬ scroungejs-1.3.6:~/test/src/views/viewsall.js
. ├─┬ scroungejs-1.3.6:~/test/src/views/viewb.mjs
. │ └─┬ scroungejs-1.3.6:~/test/src/controls/ctrlsall.js
. │ ├─┬ scroungejs-1.3.6:~/test/src/controls/ctrla.js
. │ │ └── scroungejs-1.3.6:~/test/src/models/modela.js
. │ └─┬ scroungejs-1.3.6:~/test/src/controls/ctrlb.js
. │ └── scroungejs-1.3.6:~/test/src/models/modelb.js
. └── scroungejs-1.3.6:~/test/src/views/viewa
[...] ugly: (app.js, .css, 1/2) ./src/views/viewa.less
[...] ugly: (app.js, .css, 2/2) ./src/views/viewb.less
[...] write: ./out/app.css ~25.93kb
[...] ugly: (app.js, .js, 1/9) ./src/models/modela.js
[...] ugly: (app.js, .js, 2/9) ./src/controls/ctrla.js
[...] ugly: (app.js, .js, 3/9) ./src/models/modelb.js
[...] ugly: (app.js, .js, 4/9) ./src/controls/ctrlb.js
[...] ugly: (app.js, .js, 5/9) ./src/controls/ctrlsall.js
[...] ugly: (app.js, .js, 6/9) ./src/views/viewb.mjs
[...] ugly: (app.js, .js, 7/9) ./src/views/viewa.js
[...] ugly: (app.js, .js, 8/9) ./src/views/viewsall.js
[...] ugly: (app.js, .js, 9/9) ./src/app.js
[...] write: ./out/app.js ~2016.23kb
[...] write: ./out/app.js.map
[...] write: ./index.html
[...] finish: 00:00:167 (mm:ss:ms)
It reads index.tpl.html,
<!DOCTYPE html>
<html>
<head>
</head>
<body></body>
</html>
It creates and updates a resulting index.html,
<!DOCTYPE html>
<html>
<head>
<link href="./out/app.css" rel="stylesheet" type="text/css">
<script src="./out/app.js" type="text/javascript"></script>
</head>
<body></body>
</html>
When iswatch
is true and concatenate is false
, updating a file shows this,
[...] update: scroungejs-1.3.6:~/test/src/lib/library.js
[...] write: ./index.html
