どうも、フミです。
京都の上のほうから市内に向かう電車の中で書いているので、誤字はお許しください...
普段からC系の言語とJavascriptを二刀使いしている皆さん、皆さんはJavascriptをかいていて、あ~、include文使えたらいいのにな...
って思ったことありませんか?
いや、いやいや、シンキングフェイスをしたそこのあなた、あなたの気持ちはよ~くわかりますとも!ええ、ええ、そうでしょうね!importを使えばいいだろう!でしょうね!!
使いこなせるのであればいいのですが、importは少し書き方が特殊になる上に、スコープ的にめんどくさいんです(個人の感想です。)
そこで、JSでもinclude文が使えるようになるためのプログラムを作りました!!
5分くおりてぃなので悪しからず...
やったこと
Nodejsを使って既存のファイルを解析し、include文を適用したjsファイルをa.jsとしてカレントディレクトリに出力します。
多分コード読んだほうがわかるので...
const main_file=process.argv[2];
const fs = require('fs');
function include(fname){
let code = String(fs.readFileSync(fname));
console.log("include \n\n"+code);
const analy=code.split("#include ");
let program=analy[0];
for(let i=1;i<analy.length;i++){
program+="\n"+include(analy[i].split(/\r\n|\n|\r/)[0])+"\n";
}
program+=analy.pop().split(/\r\n|\n|\r/,2)[1];
return program;
}
fs.writeFileSync("a.js", include(main_file));
以上!!
使い方
コンパイル()したいファイルとincludeしたいファイルの拡張子は何でもいいです。
コマンドラインで
node cmp.js [コンパイルしたいメインファイルのパス]
としてやるとa.jsに結果が出力されます。
includeしたいファイル内でさらにincludeしても大丈夫です。