Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

importやrequireの相対パス問題を解決するプラグイン

More than 3 years have passed since last update.

importやrequireで階層が深い場合の相対パスがめんどくさいという問題について、NODE_PATHを設定する方法やnode_modulesに配置するなどいくつか対処の仕方があるようです。しかしどれも決め手に欠ける感じだったのでgulp-absolute-pathというプラグインを作りました。

Node.jsの標準モジュールではなく、node_modulesにも存在せず、相対パスでもない場合に指定したルートディレクトリを基準とした絶対パスとして扱います。

https://www.npmjs.com/package/gulp-absolute-path

Usageでは

    .pipe(abspath({rootDir:'./app'}))
    .pipe(ts(tsOptions))

のようにTypeScriptの前で使っていますがjsでも大丈夫です。ただビルドでは問題なくともエディタ上でmodule not foundのエラー報告がされてしまうと思われ(lintを入れている場合など)ます。

TypeScriptの場合はtsconfig.jsonでbaseUrlを設定しておくことで対応可能なので、エディタ(Atom等)に対してはtsconfig.jsonで、ビルド時にはgulp-absolute-pathでと整合性を保ちつつ使い分けるという方法が良いでしょう。jsの場合は・・・わかりません。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away