はじめに
- この方法は正直嬉しくない方法なので別途解決策を検討中。(理由は後述)
やりたいこと
- ChromeBookの容量が少ないので外付けSSDを購入して来たのでそちらに資材を移して開発がしたい。
当初の問題点
- 外付けフォルダ内でnpm installをするとsymlink系のエラーが多発する。
- npm install --no-bin-linksを試してみたがエラーとなる。(Nuxt.jsの環境作成で失敗する。)
解決方法
mountコマンドを使用する
- 調べた限りでは、「Virtualboxの共有フォルダではシンボリックリンクが作成できない」事象が当てはまる様子。
- node_modulesの内部で容量節約のためにシンボリックリンクを使っているらしい。
- mountコマンドを使えばシンボリックリンクを作成できるフォルダに差し替えることができる。
- よってnode_modulesフォルダだけどうにかすれば解消する可能性がある。
手順
1 . ChromeBook側のディスクにnode_modulesを作成する。
(例:/home/user1/project-name/node_modules)
2 . 外付けSSDに資材を格納する※package.jsonが用意できれば良いのでgithubなどからcloneでも可。
(例:/mnt/chromeos/removable/SSD-XXXX/projects/node/project-name)
3 . 外付けSSD側のnode_modulesを作成する
(例:/mnt/chromeos/removable/SSD-XXXX/projects/node/project-name/node_modules)
4 . mountコマンドを実行※--bindオプションがrootユーザ必須らしいのでsudoで実行。
sudo mount --bind [Chromebook側のフォルダ] [SSD側のフォルダ]
5 . npm installを行いエラーにならなければOK。
試しにNuxt.jsをnpm run devを実行したら起動できた。
(yarnでもやってみたが最終的にはうまくいく。)
現在の問題点
- これで一応動かせるようにはなったが、容量を減らしたい目的なのに中途半端な結果になってしまっている。
- 特にnode_modulesが一番重いのでそちらをどうにかしたかった。
- もう少し良い案がないかは検討だが、手間をそこまでかけたくないので一旦これで様子を見る。
- ChromeBookのデベロッパーモードを使ってどうにかできるのか不明だがSSDにシンボリックリンクの作成権限が付与できれば行けそう。