搭建Vue + Vagrant 开发环境

1. 搭建Vagrant的Vue环境

1.1 安装 Vagrant 环境

Vagrant 的安装方法这里就不在详细讲解了,网上有很多自行参考。

1.2 下载 Vagrant box 并 初始化Vagrant 环境

首先推荐一下一个网站:http://www.vagrantbox.es 。在这里有很多的 box 大家需要自行下载。

按照以下命令,安装box
1.  # vagrant box add ubuntu https://github.com/jose-lpa/packer-ubuntu_lts/releases/download/v3.1/ubuntu-16.04.box
2.  # mkdir ~/Desktop/vue && mkdir ~/Desktop/data && cd ~/Desktop/vue
3.  # vagrant init ubuntu  (此时你能看到当前目录下生成了一个 Vagrantfile 文件)
4.  用以下的Vagrantfile 文件内容替换当前的Vagrantfile 文件
5.  # vagrant up (国内网络环境不太好,可能比较慢)
6.  # vagrant ssh (进入vagrant 内)

Vagrantfile 文件

Vagrant.configure("2") do |config|
 config.vm.box = "ubuntu"
 config.vm.box_check_update = false
 config.vm.network "forwarded_port", guest: 8080, host: 8080, host_ip: "127.0.0.1"
 config.vm.network "forwarded_port", guest: 3000, host: 3000, host_ip: "127.0.0.1"
 config.ssh.insert_key = false
 config.vm.synced_folder "./data", "/home/vagrant/vagrant_data"
 config.vm.provision "shell", inline: <<-SHELL
   apt-get update
   apt-get install wget
   curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
   sudo apt-get install nodejs
   sudo npm install -g npm
   sudo npm config set registry https://registry.npm.taobao.org
   sudo npm install vue
   sudo npm install --global vue-cli
   sudo npm config set registry https://registry.npm.taobao.org
 SHELL
end
vagrant 的一些常用命令

(1)vagrant init # 初始化
(2)vagrant up # 启动虚拟机
(3)vagrant halt # 关闭虚拟机
(4)vagrant reload # 重启虚拟机
(5)vagrant ssh # SSH 至虚拟机
(6)vagrant status # 查看虚拟机运行状态
(7)vagrant destroy # 销毁当前虚拟机

1.3 校验vagrant的vue环境是否安装成功

如果显示如下信息则成功。

vagrant@ubuntu:~$ nodejs -v
v6.11.3
vagrant@ubuntu:~$ npm -v
5.4.1
vagrant@ubuntu:~$ vue -V
2.8.2
vagrant@ubuntu:~$

1.4 工作目录的简单介绍

经过以上步骤,其实大家可能已经发现了在宿主机的vue文件夹下有一个data 文件夹,在vagrant内部的 /home/vagrant/ 目录下有 vagrant_data 文件夹。这两个文件夹是数据互通的。我们后续的开发工作便在这两个文件夹中。

2. 初始化Vue项目环境

这一部分的内容和Vue官网介绍的内容相同。仅仅总结一下

2.1 创建Vue 项目

vagrant@ubuntu:~/vagrant_data$ npm config set registry https://registry.npm.taobao.org
vagrant@ubuntu:~/vagrant_data$ npm config get registry
https://registry.npm.taobao.org/
vagrant@ubuntu:~/vagrant_data$ vue init webpack vue-project

? Project name vue-project
? Project description A Vue.js project
? Author
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Setup unit tests with Karma + Mocha? Yes
? Setup e2e tests with Nightwatch? Yes

  vue-cli · Generated "vue-project".

  To get started:

    cd vue-project
    npm install
    npm run dev

  Documentation can be found at https://vuejs-templates.github.io/webpack

vagrant@ubuntu:~/vagrant_data$ 
image.png

2.2 进入vue 项目并运行

命令:
vagrant@ubuntu:~/vagrant_data$ cd vue-project/
vagrant@ubuntu:~/vagrant_data/vue-project$ npm install
vagrant@ubuntu:~/vagrant_data/vue-project$ npm run dev
效果图:
vagrant@ubuntu:~/vagrant_data$ cd vue-project/
vagrant@ubuntu:~/vagrant_data/vue-project$ ls
build  config  index.html  package.json  README.md  src  static  test
vagrant@ubuntu:~/vagrant_data/vue-project$ npm install

> phantomjs-prebuilt@2.1.15 install /home/vagrant/vagrant_data/vue-project/node_modules/phantomjs-prebuilt
> node install.js

PhantomJS not found on PATH
Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
Saving to /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
Receiving...
 [========================================] 99%
Received 22866K total.
Extracting tar contents (via spawned process)
Removing /home/vagrant/vagrant_data/vue-project/node_modules/phantomjs-prebuilt/lib/phantom
Copying extracted folder /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract->1505378871593/phantomjs-2.1.1-linux-x86_64 -> /home/vagrant/vagrant_data/vue->project/node_modules/phantomjs-prebuilt/lib/phantom
Writing location.js file
Done. Phantomjs binary available at /home/vagrant/vagrant_data/vue-project/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs

> chromedriver@2.32.2 install /home/vagrant/vagrant_data/vue-project/node_modules/chromedriver
> node install.js

Downloading https://chromedriver.storage.googleapis.com/2.32/chromedriver_linux64.zip
Saving to /tmp/chromedriver/chromedriver_linux64.zip
Received 781K...
Received 1568K...
Received 2352K...
Received 3136K...
Received 3920K...
Received 3978K total.
Extracting zip contents
Copying to target path /home/vagrant/vagrant_data/vue-project/node_modules/chromedriver/lib/chromedriver
Fixing file permissions
Done. ChromeDriver binary available at /home/vagrant/vagrant_data/vue->project/node_modules/chromedriver/lib/chromedriver/chromedriver
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.2 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 1297 packages in 205.973s
vagrant@ubuntu:~/vagrant_data/vue-project$ npm run dev

> vue-project@1.0.0 dev /home/vagrant/vagrant_data/vue-project
> node build/dev-server.js

> Starting dev server...


DONE  Compiled successfully in 6518ms                                                                             8:53:55 AM

> Listening at http://localhost:8080

(node:13627) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Exited with code 3

2.3 运行效果

在宿主机的浏览器上输入 http://127.0.0.1:8080/#/ 出现如下效果图则代表成功。


image.png

3. 开发环境配置

前端开发工具 WebStrom
在宿主机上按照如下图解进行配置


新建一个空项目

设置同步部署方式(1)

设置同步部署方式(2)

设置同步部署方式(3)

设置同步部署方式(4)

同步vagrant 内部的代码

设置宿主机文件自动同步到vagrant中,来保证vue热更的正常的运行

到此,大家可以愉快的开发了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • 本文作者 Jinkey(微信公众号 jinkey-love,官网 https://jinkey.ai)原文链接 h...
    JinkeyAI阅读 425,557评论 152 921
  • 14-4-43 大学两年时间的学习告诉我们,我们应该关注幼儿的身心健康快乐成长,应当让他们在玩中学,游戏是幼儿学习...
    slide_阅读 247评论 1 7
  • 此去经年,黄粱一梦。 二零一七年了。过几天我就可以回家了,跟我这一生中所有最重要的人团聚,除了…妈妈。 我没...
    秋水伊人_fb55阅读 645评论 4 7
  • 聊起足球,大家首先想到的可能是不争气的国足,作为中国球迷,我想大家已经练就了金刚不破之身,也可以自豪地向世人宣告:...
    大漠狼烟lq阅读 356评论 3 2
  • 以下图片都是索尼微单拍摄 那时候去的季节海风特别冷,特别疯狂,像流浪汉自由妄为,不安张狂,拼命对着世界呐喊,我该去...
    是是而非阅读 311评论 3 2