日頃の行い

個人的な日頃の行いをつらつら書いてます\\\\ ٩( 'ω' )و ////

PHPStormを使っている時にCannot resolve file 'xxxxx.js' と怒られる

PHPStormでテンプレートをいじっている時に、
scriptファイルのパスを指定したらタイトルの通りに怒られてしまったのでその対処方法を探しました。
イメージはこんな感じです。

f:id:arata3da4:20170523201229p:plain

検証に使ったレポジトリはこちらです。

github.com

とりあえず Cannot resolve file phpstorm js ってぐぐってみたらここにたどり着きました。

stackoverflow.com

PHPStormはデフォルトだとルートディレクトリから見たパスにファイルがなかったら
Cannot resolve file … と言うみたいですね。
確かにscriptのパスを /js/index.js からルートからみたパスの
/web/js/index.js に変えたらなにもしなくても解決できるようになりました。

# ディレクトリ構成
$tree
.
├── LICENSE
├── Makefile
├── README.md
├── composer.json
├── composer.lock
├── composer.phar
├── templates
│   └── index.html
└── web
    ├── index.php
    └── js
        └── index.js

当然、他にも方法はあって、
今回で言えば web ディレクトリを Resource Root として扱うようにPHPStormに設定すればよいみたいです。
Resource Root にしたいディレクトリを右クリック -> Mark Directory as -> Resource Root で設定できるみたいです。

f:id:arata3da4:20170523202007p:plain

設定したら、解決されるようになりました。

f:id:arata3da4:20170523202131p:plain

しかも、(macなら)cmd + クリックでファイルまで辿れるようになったので、
ファイルが大量になったりしたときにはとても便利そうですね。

感想

  • ファイルまで辿れるのとても便利
  • 最高に便利になったので絶対やったほうがいいと思いました。
  • もうPHPStormじゃないとphp書けない体になりました。