Laravel为我们提供了Homestead重量级的开发环境,本文简单记录一下在Windows系统中的配置流程以及踩过的一些坑。
搭建开发环境
首先需要安装 VirtualBox 、Vagrant 和 Git,并且确保本机中已经生成了 SSH Key。
导入定制版的 Homestead Box 虚拟机盒子
下载解压后来到盒子的目录下执行:vagrant box add metadata.json
定制版特点:
- Composer 加速,配置了 Composer 中国全量镜像 支持;
- 默认集成 Heroku 工具;
- 默认集成 Yarn,并为 Yarn 加了淘宝镜像的加速;
- 使用 CNPM 对 NPM 进行加速。
下载 Homestead 管理脚本
git clone https://git.coding.net/summerblue/homestead.git Homestead
cd ~/Homestead
git checkout v7.8.0
bash init.sh
因国内网络限制,定制版本的 Homestead 脚本从国内 coding.net 网站下载,下载速度会比 官方 更快;对脚本进行修改,移除了每一次
provision
时composer self-update
的卡顿。
配置 Homestead
根据情况修改Homestead.yaml里的配置,注意在key选项添加一行公钥:
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
不要忘记到 hosts
文件中添加一行Laravel测试域名和虚拟机IP的解析规则。
如果需要在局域网内来访问虚拟机中的项目,需要增加networks配置项,必须配置同网段的公网ip:
networks:
- type: "public_network"
ip: "192.168.1.101"
bridge: "en1: Wi-Fi (AirPort)"
运行虚拟机
-
来到Homestead目录,开启虚拟机:
vagrant up
-
如果修改过 Homestead.yaml,则执行:
vagrant up --provision
-
登录进虚拟机:
vagrant ssh
如果虚拟机无法启动,可能是由于Windows没有开启虚拟化技术,到BIOS里面设置一下就好。
vagrant 常用命令:
-
vagrant box list
-
vagrant box add xxx xxx.box
-
vagrant init
-
vagrant up
-
vagrant halt
-
vagrant reload
-
vagrant ssh
-
vagrant package --output xxx.box
初始化 Laravel 项目:
composer create-project laravel/laravel Laravel --prefer-dist "5.5.*"
配置 npm 国内镜像:
npm config set registry http://registry.npm.taobao.org/
npm config set sass-binary-site http://npm.taobao.org/mirrors/node-sass
安装依赖:
npm install --no-bin-links
如果是在Mac系统上开发,无需加参数
--no-bin-links
常见问题
以上步骤成功之后 Laravel 项目就可以跑起来了,但是如果采用的是Windows系统,直接在虚拟机中执行 npm install
很可能会报一大堆错误,或者安装成功但编译也会报错,也许是版本不兼容,虚拟机自带Node环境为:
- node v8.11.2
- npm v6.1
解决方法如下:
1、回退npm的版本到v5.7.1:sudo npm install -g npm@5.7.1
也许升级node版本也可以,未测试过。
2、删除 package.json
文件里面的开发依赖项:cross-env
3、安装:npm install --no-bin-links
4、全局安装 cross-env:sudo npm install -g cross-env
5、运行 npm run dev
,就可以看到编译成功了!
网友评论