Eu não acho que seria possível escrever algo não-trivial que funcionasse tanto no novo Node.js quanto no antigo Rhino.
Mas se você for capaz de instalar pacotes naqueles sistemas antigos, então você provavelmente também poderá instalar o software a partir da fonte (pelo menos é necessário se você quiser instalar o seu próprio software lá).
A instalação do Node a partir da fonte não é difícil - veja parte). Você pode até mesmo instalar o Node especificamente ao longo de seus próprios scripts para não estrobiar o sistema de arquivos.
Por exemplo, digamos que você queira instalar seus scripts em / opt / X (substitua um nome melhor por X), você pode fazer assim:
# create a directory:
mkdir -p /opt/X/node-src
# change dir:
cd /opt/X/node-src
# download the Node source:
curl -O https://nodejs.org/dist/v4.4.5/node-v4.4.5.tar.gz
# extract the archive:
tar xzvf node-v4.4.5.tar.gz
# go into the extracted dir:
cd node-v4.4.5
# configure for installation:
./configure --prefix=/opt/X/node-v4.4.5
# build and test:
make && make test
# install:
sudo make install
# make a symlink to that version:
sudo ln -svf /opt/X/node-v4.4.5 /opt/X/node
# create a directory for your scripts:
mkdir /opt/X/scripts
Agora, coloque seus scripts em /opt/X/scripts
e lembre-se de iniciá-los com uma linha:
#!/opt/X/node-v4.4.5/bin/node
(para uma determinada versão)
ou:
#!/opt/X/node/bin/node
(usando seu link simbólico)
Adicionando /opt/X/scripts
ao seu PATH
usando algo como:
PATH="/opt/X/scripts:$PATH"
em algum lugar onde você configura o PATH
(como .profile
ou .bashrc
) facilitará a execução de seus scripts. Se você quer tanto seus scripts como node
/ npm
binários facilmente executáveis, você pode definir PATH
desta forma:
PATH="/opt/X/scripts:/opt/X/node/bin:$PATH"
É claro que você pode alterar o "X" para um nome melhor ou instalar o nó em /opt/node
like eu descrevi aqui ou em qualquer outro lugar se você quiser (lembre-se de colocar seus próprios caminhos nos comandos acima).
Dessa forma, você pode ter uma versão moderna, segura e consistente do Node em suas máquinas. Isso é o que eu recomendaria nessa situação, porque escrever esse código que funcionaria no Node novo e antigo e no Rhino (e fazer qualquer coisa útil) não parece fácil ou até mesmo possível. O nó não é apenas JavaScript, mas também um complicado sistema de I / O, libuv e todo o ecossistema dos módulos npm.
Como diz o velho ditado: "É mais fácil portar um shell que um shell script" (Larry Wall), então no seu caso pode ser mais fácil instalar o Node junto com seus scripts do que escrever seus scripts de uma forma que funcionaria sem o Node (embora, se você conseguir fazer isso, por favor poste um comentário aqui, eu certamente gostaria de saber como você fez isso).