苦労という感じでは無かったけれど
そういえばかなり初期に起きた出来事なので、忘れていましたが、vagarantで起きた珍事。
多分docker、もっと広く言うとwindowsで仮想PCで作業していたら起きそうな事です。
laravelをインストールすると大量のvenderファイルとnode_modulesがを入れる事になります。
venderファイルの方は問題ないのですが、node_modulesを入れるためのnpm installが多分動かないです。
人によって開発の仕方は変わると思いますが、手っ取り早いのがvagrantとwindowsの共有フォルダにlaravelプロジェクトを作るとgitでもソースツリーが使えますし、エディターもwindows環境で動く物が使えます。
なので大体の人は共有フォルダにプロジェクトを作ると思うのですが、node_modules内でシンボリックリンクがあるためnpm installが出来ません。
解決方法は色々とあるようですが、vagrant内のフォルダ(ディレクトリ)と共有フォルダ内でそれぞれnode_modulesフォルダを作りマウントコマンドでバインドする。
linuxでマウントというとUSBなどを繋いでマウントして使うという感じで使用するのが一般的な様ですが、マウント&バインドするとnpm install出来る様になります。
linuxのhomeの下くらいにnode_modulesディレクトリを作って、共有フォルダ側でもnode_modulesディレクトリを作ってあげます。
この2つをマウント&バインドする事で動きます。
若干まだマウント&バインドがどういう仕組みなのか不明ですが、おいおい勉強します。
多分マウントする事でlinux側のディレクトリではシンボリックリンクが作れるので動くのかなと。
さてさて言い訳はこのぐらいにしてやり方です。
linux側のディレクトリの作り方は調べて下さい。
初回は割と時間がかかります。
よくよく考えたらnpm無しでもlaravel自体は動く様な気がしますが、javascriptのエラーをチェックしてくれたり、scssをcssに変換してくれたりと多分最近の開発ではメジャーなので入れておいた方がいいでしょう。
もう少し続くよ
そういえばnode自体はyumで入りますが、verが古いので更新してあげて下さい。
この更新に古いnodeが必要なので必ず入れる事になります。
nodeが入ったら、
で最新のバージョンにしてあげましょう。
多分これで最新なjavascriptフレームワーク&scssなどがコンパイル出来ます。
一点謎なのが、javascriptをコンパイルすると、letやconstがvarになる^q^
詳しい人教えて下さい!
TypeScriptが何たらとあるのですが、letやconstって純粋なjavascriptだと無いのかな?
なんかモジュールを入れたらもしかしたら普通に変換するかもしれないし、無いかもしれない・・・フロントには詳しくないので謎です。
vueはちゃんと使えるようになりたいので、お勉強中です。
コメント