node --import pre.js main.js foo=bar
みたいなもので foo=bar は pre.js 用という扱いでした
pre.js で処理した process.argv は main.js でも共通なので pre.js で先に引数を処理してしまうみたいです
例
[pre.js]
const args = process.argv.splice(2, 2)
console.log("pre", args)
[main.js]
console.log("main", process.argv)
root@fcb8f9998337:/mnt/t/1# node --import ./pre.js main.js a b c
pre [ 'a', 'b' ]
main [ '/usr/local/bin/node', '/mnt/tmp/1/main.js', 'c' ]
pre.js で splice を使って引数の最初の 2 個を取り出して main.js ではそれ以外が残ってる感じです
順番だけでなく pre.js 側で特定のプレフィックスのみを処理するとかもあると思います
preload をあまり使わないので気にしてませんでしたが 結構ありな考え方ですね