LoginSignup
2
2

More than 5 years have passed since last update.

node.jsでrequireする時の'../../../hoge'と決別するmoduleを作りました

Posted at

名前はrrqです。root requireの略です。

前置きはいいから早くしろ、という方はこちらへ。

rrq (npm)

rrq (github)

概要

nodeで自作モジュールを読み込む時に

var hoge = require('../../mymodule/hoge')

みたいな書き方をしますよね。

この相対パスがよくわからない。

../を入れたり消したりしながら動かしてイライラする。

var hoge = require('mymodule/hoge')

↑こんな感じで書きたい。

それができるようになるのがrrqです。

インストール

プロジェクトのルートディレクトリに移動してインストールします。

cd [プロジェクトのパス]
npm install rrq

インストール後、プロジェクトルートに[.rrqrc]というファイルを作成します。空で構いません。

touch .rrqrc

このファイルのある場所をルートと認識してパスを解析します。

  • ファイル名は[.rrqrc]でなくても[.rrq]で始まるものならなんでも構いません。
  • 例[.rrq][.rrqrc][.rrq.conf.yaml]等

使い方

rrq(path)

rrq = require('rrq').require2

# requireを使った場合
c = require('../../pathTest/c/cc/c')

# rrqを使った場合
c = rrq('pathTest/c/cc/c')

これでrequireできます。

また、requireするための相対パスだけ取得したい場合は以下のメソッドを使います。

requirePath(from,to)

rq = require('rrq')
rq.requirePath(__dirname,'pathTest/c/cc/c')
# ../../pathTest/c/cc/c

projectRoot()

ルートディレクトリのパスを取得するメソッドもあります。

rq = require('rrq')
root = rq.projectRoot()
console.log root

# /Users/hoge/path/to/myProject

contact

質問、要望、バグレポートはこちらへお願いします。

Issues · mick-whats/rrq

もしお褒めの言葉など御座いましたら@_watsまで頂けましたら泣いて喜びます。

2
2
2

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
2