mottox2 blog

Node.jsでファイルを直接実行した際にしか動かない処理を書く

tip

Node.jsで他のファイルから呼び出すためのファイルを書いた時に、その関数をいい感じに実行したいと思ったことはないだろうか?具体的にはテストから呼び出すほどでもない用途でnode index.jsを叩いた時だけ動く動作を実現したい。
私は昔からRubyを書いており以下のような記述で、ファイルを直接実行した際にしか動かない処理を書くことができるのを知っていた。

sample.rb
class HogeClass
  def some_method
  end
end

# `ruby sample.rb`を叩くと実行される。他ファイルからの読み込み時には動作しない。
if $0 == __FILE__
  # do someting 
end

これをNode.jsに置き換えると次のようなコードで実現できた。便利だ。

index.js
modules.exports = () => {
}

if (require.main === module) {
  console.log('`node index.js`のように実行の起点となる時だけ実行される。')
  console.log('`require("./index")`のように読み込まれると実行されない。')
}

参考: https://nodejs.org/api/modules.html#modules_accessing_the_main_module

B!
book

MS Wordで柱に章番号・テキストを表示する方法

技術書展8に向けてWordとPandocを使って同人誌を作っています。PandocではWordのテンプレートを用意して、その中にMarkdownで書いたコンテンツを流し込みます。この構成で大事なのがW

event

技術書展8でSPAの技術に関する同人誌を出す予定です

技術書展7、技書博1に続いて技術書展8や技書博3に向けて、つのぶえ出版として新作を書いています。今回は「フロントエンドの技術選定」「仕組みの理解」あたりをテーマに考えています。 - ReactとV

diary

タスク消化のためにひとり合宿をやってきた

3泊4日をかけて名古屋でタスク消化合宿を行った。 簡単にまとめると、普段の環境では進捗が見えやすく、達成感を得られるプログラミングをやりがちですが合宿の場を用意することで普段進みにくいタスクを消化す