1
2

More than 3 years have passed since last update.

git cloneしたVueプロジェクトを仮想環境で起動できない!!

Last updated at Posted at 2020-06-09

はじめに

タイトルにもある通り、リモートのVueプロジェクトをローカルの仮想環境で動かそうとした際に二転三転とエラーが重なって解決に時間がかかったので、解決方法及び内容理解のための内容です。

環境

ローカル
Vagrant 2.2.7
Virtualbox 6.1.6
Vue 2.6.11

仮想環境
centos 7.2

共有フォルダの設定

vagrantfile
  config.vm.synced_folder "..", "/home/vagrant/vue_project",
    create: true, owner: "vagrant", group: "vagrant"

内容

まずはgit cloneでリモートリポジトリからソースをクローン

git clone [リポジトリURL]

今回はソースコードの中にvagrantファイルを入れてあるので、vagrantfileのあるディレクトリまで移動。

cd vue_project/vagrant

仮想環境立ち上げて、ssh接続

vagrant up
vagrant ssh

共有フォルダに指定したプロジェクト直下に移動して、プロジェクト起動!

$ npm run serve
sh: vue-cli-service: command not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! vue_project@0.1.0 serve: `vue-cli-service serve`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the vue_project@0.1.0 serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2020-06-09T14_01_46_634Z-debug.log

エラーが発生しましたが、このエラーはnpmの再ビルドを行っていなかったので起きたのが原因のようです。
なので再度jsモジュールを全部入れ直して、実行する。

$ rm -rf node_modules package-lock.json && npm install
npm ERR! code EPROTO
npm ERR! syscall symlink
npm ERR! path ../acorn/bin/acorn
npm ERR! dest /home/vagrant/vue_project/node_modules/@vue/cli-service/node_modules/.bin/acorn
npm ERR! errno -71
npm ERR! EPROTO: protocol error, symlink '../acorn/bin/acorn' -> '/home/vagrant/vue_project/node_modules/@vue/cli-service/node_modules/.bin/acorn'

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2020-06-09T14_07_28_990Z-debug.log

また、別のエラーが、、、
色々調べてみましたが、今回ここで解決せず詰まってしいました。

原因・解決策

原因は↓の記事に書いてある通り、
参考記事:https://qiita.com/tuttieee/items/ab9b198cd2aaccb446ff

VirtualBoxの共有フォルダではシンボリックリンクの作成が禁止されている事
また
シンボリックリンクの作成を回避しても,パスの長さがホストOS(Windows)の制限に引っかかってファイルを作成できない事
が原因のようです。

はじめはピンときていませんでしたが、とにかくそのまま仮想環境上でビルドできないよ、と言われているのであれば解決の手段は色々考えられました。

WindowsにVueプロジェクトクローン→vagrant up→ssh接続→npm再ビルド(npm install)→npm run serve
でエラーになるので

①WindowsにVueプロジェクトクローン→npm再ビルド(npm install)→vagrant up→ssh接続→npm run serve

の順で実行すれば、問題ありませんでした。

個人の環境に依存する方法が嫌であれば

②vagrant up→ssh接続→仮想環境にVueプロジェクトクローン→npm再ビルド(npm install)→npm run serve

みたいに仮想環境に直接クローンする事でもビルドと起動が成功します。

チームで行う場合は参考記事みたいに、パスの制限設定をいじったりする方法もありだと思いました。

1
2
0

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
1
2