LoginSignup
2
1

More than 5 years have passed since last update.

どこでもアプリルートからの相対パスでrequireできるnpmモジュール

Posted at

https://github.com/tilfin/reqroot の紹介

背景

ある程度大きな Node.js アプリになると、モジュールの requiremodels/aaa から require('../utils/foo')routes/bbb から require('../models/entry') のような指定が増えてきて、深いといくつ上の階層に戻るかわかりづらくかったり、リファクタリングで階層が変わると書き換えが面倒になります。

reqroot モジュール

そこで require('../utils/foo') のような代わりに reqroot('utils/foo') とアプリルートからのパスでどこからでも読み込めるモジュール reqroot (読み方:リクルート)を作りました。既存の同機能のモジュールはありましたが、毎回そのモジュール自体を require しなくてはならず、global.reqroot としてグローバルに使えるところが異なります。

設定

  • node が最初に読むメインモジュールの先頭で require('reqroot'); する。
  • テスト時も効くように "test": "mocha -r reqroot" とpackage.jsonに定義する。

補足

全ての require を置き換えるのではなく、背景の例のようにアプリ直下の各モジュールツリーに対して別のツリーのモジュールを呼び出すところだけ使うと良いでしょう。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1