Window环境下搭建相对完美的前端开发环境

回首

一年前其实也写过一两篇博文记录自己的前端的环境。但是随着前端的飞速发展,以及协同开发的逐渐扩大,早些时候的环境就不太适用,最近又折腾了一下vagrant镜像,这里谨作记录.

背景

公司目前对电脑安装了加密软件,仅运行在win平台,因此更多情况我就不得不使用win平台进行开发。但是win下npm install诸多包的时候会用到gcc等编译工具链,而win下安装vs后仍然有很多包搞不定。另外来说,作为命令行重度用户,vim热爱人士(youcompleteme在win下安装麻烦得感人),等等,基于这么多的考虑,最后我不得不在虚拟机里面运行相关命令,并依托sabma来进行linux和win的文件交互。

但是随着前端小组有扩大的倾向,公司没法变更的win平台(boss不让用个人电脑),直接使用虚拟机渐渐变得很不优雅。

最后,考虑到vagrant在开发过程中的优势,加之npm3随之而来的平坦化特性(更早时候npm2时代node_modules目录无线嵌套导致win平台存不下去那么长文件路径导致读写失败),最终我又用vagrant开始配置环境了。

感谢vagrant 和 npm3,给工作带来诸多方便。

第一步是安装

安装其实本来想省掉的,但是后来win下使用碰到了一点坑,所以也记录一下

  1. 在MacOS下安装vbox和vagrant没有什么好说的,直接下载最新版,先安装vbox再安装vagrant.
  2. Win平台下有个地方需要注意,最新的vbox版本下,使用npm在同步目录npm install时候有时候会遇到syslink之类的错误,我预计这个是属于linux系统下ln -s命令这种执行失败。查了下资料,使用virtualBox 4.3.10这个老版本没这个现象,于是降到这个版本了(vagrant也换了1.7.4),果然就没有这个问题了。但是比较奇葩的是我一个同事新装系统和我用同样的box就不行,所以这里我还要进一步找个电脑看看。

第二步是vagrant的base box配置

base box配置是件挺麻烦的事情,所以我们直接用他人打包好的干净的base box就可以了。
这里我是在github上找到的archlinux为发行版的box,作者刚刚更新了这个box,所以我就用上了,地址在这里 传送门.
选择archlinux做基础环境的原因主要是以下几个:

  • archlinux使用滚动升级,可以跨版本升级,方便以后进行进一步维护更新
  • archlinux的包相对其他来说更加干净的同事也更加省内存(正常空闲运行时占用不到80M)

好了,闲话就说到这里,下面开始贴代码写步骤。

  1. 下载好box,并cd进入目录,设下载好的box叫做box.box
  2. 添加box,命令是 vagrant box add archlinux box.box,这里archlinux是box名字,可以自己随意设置
  3. 创建一个新目录,将环境初始化在这里: mkdir archlinux&&cd archlinux&&vagrant init archlinux,这里archlinux是步骤2设置好的
  4. 启动虚拟机, vagrant up
  5. 登陆进入linux环境,如果是在具有ssh命令的环境,比如安装了cygwin(我推荐用babun替代他),可以直接使用vagrant ssh进入,如果没有,使用putty、xshell(可以记住密码)之流,使用预定义帐号登录(帐号密码都是vagrant,可以用root登录,密码仍是vagrant)

第三步开始配置环境了

前端工作流需要安装的各种东西都安装起来。
环境这个就要分成两种了.

  • 一种是工作必须,主要是npm下的各种包,诸如gulp,grunt,puer,bower,yeoman,webpack之类。
    这里一口气安好就完事了:npm i -g gulp grunt bower yo webpack

  • 一种则是用得舒服需要的:比如oh-my-zsh,比如常用的vim配置,比如配个登录消息(screenfetch)之类,如果习惯shell下工作,怎么也要安装一个tmux。。。
    这里安装的东西主要列一下,有些记不起了:

  1. oh-my-zsh
  2. vim常用配置 基于github上星星最多的项目改过来的 配好YoucompleteMe
  3. tmux
  4. git&git flow&gitignore.io&tig
  5. 一些没有安装的命令tree,ranger
  6. 其他(暂时忘了,有机会再补充)

第四步 打包自己的box

就一条命令:
vagrant package

暂结

到这里,此时我已经可以在win下非常完美进行相关开发了,npm install再也没有碰到乱七八糟的问题,vim的youCompleteMe插件也可以完美运行了,另外box还可以分享给其他人快速构建环境,我自己的工作电脑和私人的MacbookPro也可以保持统一的环境,算是了解我一桩心事,期望就这样一直下去吧。

本文暂时就这样了,配好是过去几天的事情,具体安装哪些有些不是记得很清楚了,稍后我把相关文件打包一下,如果有人急需的话,可以留下邮箱找我要.

—-已经上传 点此前往—-