第三方web ide开发环境下vuejs开发HMR环境搭建-码农这样开发是快乐的!
vuejs是一个非常优秀的前端框架,利用该框架可以快速开发出任何web app,之所以vuejs开发非常高效快捷,其中最重要的一点就是利用webpakc提供的HMR(热模块替换)特性,可以边写vue组件,边实时看效果。
而很多时候,虽然本地我们可能已经搭建了vuejs的开发环境,但是很多时候我们需要做一个小小的实验,不希望对自己开发环境有污染。另外我们知道开发环境最稳定兼容性最好的环境还是linux,我们虽然可以搭建自己的linux开发环境,但是并不是每个时候都适合化大量时间去搭建环境,因此我们需要一个快速启动的linux开发测试环境。这几种情况下,第三方的web ide就是一个非常好的手段。
其中codeanywhere 就是一个非常优秀的代表,其环境本质上是用linux的docker容器构建出来的,每一个人的环境都是一个独立隔离的容器环境,可以随时启动开始写代码调试看效果,不用的时候就可以关闭或者删除。
但是在使用这种web ide时有几个需要解决的问题:
1. 由于容器是在防火墙的后面,而我们webpack构建后的serve url port外界无法访问
这一点比较好解决,因为codeanywhere已经考虑到这个方面,可以使用http://port-xx.yy.com/的方式路由到codeanywhere,它内部做NAT转换可以访问到后端的serve entry.
但其中有一点需要注意,必须将host选项设定为0.0.0.0这样webpack-dev-server允许从外网进来的访问
2.同样由于容器在防火墙后面,webpack-dev-server构建的bundle无法访问
虽然通过第1.点虽然可以通过http://port-xx.yy.com的方式能够访问到类似http://localhost:8080效果的网页,但是该网页中对bundle的引用却无法自动重写为 http://port-xx.yy.com/yourbundle.js ,而永远是类似 http://port-xx.yy.com/yourbundle.js 这样的形式,这是最大的问题。本来我搞来搞去希望通过 public: 'http://port-xx.yy.com' 的方式来解决,但是却发现配置无效。
结合我以前研究过的ssh port forwarding这个知识点,觉得非常适合解决这个问题,最后做了很多实验,确认这个方案可行。
下图是整个拓步:
通过构建浏览器所在的开发主机经由webide容器主机暴露的互联网ip及端口到web-dev-server的隧道,以后在调测时直接通过http://localhost:8080就可以了,因为
在开发主机浏览器中输入上述url后,直接就被route路由到了web-dev-server上,无论是 / 还是 /bundle.js 都通过这条路访问,这就完美解决了web-dev-server无法访问的问题。
其中上图中需要注意的是host22为web-dev-server所在的容器主机的hostname,8080为webpack-dev-server的serve端口
3. webpack-dev-server构建的bundle可能需要很多ajax请求,这时如何能够proxy到自己的backend(可能是laravel,可能是nodejs express开发)
对于在vue开发时前端ajax请求,可以通过web-dev-server对应的proxy配置选项来指定当浏览器访问http://localhost:8080/yourapientry/xx时将由
web-dev-server自动proxy访问你的后端,随后返回数据再通过上面的ssh隧道返回到开发主机浏览器.
devServer: {
hot: true,
host: 0.0.0.0,
port: 8080,
proxy: [
{
context: ['/apidata','/admin'],
target: 'http://yourbackend.com',
changeOrigin: true,
secure: false,
logLevel: 'debug'
}
]
}
4. 如果你希望你的后端也在你本机上,这时还有更加复杂的配置过程
这里只提一下需要使用sock代理,通过一个公网跳板反向打洞到你本机的后端,这样vue组件ajax访问实际上访问到你自己的主机。由于相对更加复杂,感兴趣的同学可以搜索更多sock方面的内容,也可以私聊我深入沟通。
经过这几个步骤,我实现了以下开发环境:
1.vue前端开发完全在webide上进行;
2.同样实现了HMR的高级开发体验;
3.你可以随时安装一些lib,做一些实验,确认ok后再真正将代码拉回到本地开发环境;
4.后端数据依然由自己的主机后端提供,我使用的是laravel
这样就可以前后端分离开发,同时又不怕实验环境由于某些垃圾库而被污染
第三方web ide开发环境下vuejs开发HMR环境搭建-码农这样开发是快乐的!的更多相关文章
- Centos7环境下etcd集群的搭建
Centos7环境下etcd集群的搭建 一.简介 "A highly-available key value store for shared configuration and servi ...
- 01.1 Windows环境下JDK安装与环境变量配置详细的图文教程
01.1 Windows环境下JDK安装与环境变量配置详细的图文教程 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1.JDK JDK 可以到官网下载 http://www.or ...
- Linux环境下SolrCloud集群环境搭建关键步骤
Linux环境下SolrCloud集群环境搭建关键步骤. 前提条件:已经完成ZooKeeper集群环境搭建. 一.下载介质 官网下载地址:http://www.apache.org/dyn/close ...
- Linux环境下HDFS集群环境搭建关键步骤
Linux环境下HDFS集群环境搭建关键步骤记录. 介质版本:hadoop-2.7.3.tar.gz 节点数量:3节点. 一.下载安装介质 官网下载地址:http://hadoop.apache.or ...
- Linux环境下ZooKeeper集群环境搭建关键步骤
ZooKeeper版本:zookeeper-3.4.9 ZooKeeper节点:3个节点 以下为Linux环境下ZooKeeper集群环境搭建关键步骤: 前提条件:已完成在Linux环境中安装JDK并 ...
- 【转】Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)
http://blog.csdn.net/ccf19881030/article/details/9204801 很久以前使用博客园博主子龙山人的一篇博文<Cocos2d-x win7+vs20 ...
- 在windows下用cygwin和eclipse搭建cocos2dx的android开发环境
在windows下用cygwin和eclipse搭建cocos2dx(2.1.4)的android开发环境,2013-8-1更新. 一.准备工作 需要下载和安装以下内容,请根据自己的操作系统选择x86 ...
- Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本号的开发环境
写这篇博客时2D游戏引擎Cocos2d-x的最新版本号为2.1.4,记得非常久曾经使用博客园博主子龙山人的一篇博文<Cocos2d-x win7+vs2010配置图文具体解释(亲測)>成功 ...
- LINUX环境下SVN安装与配置(利用钩子同步开发环境与测试环境)
安装采用YUM一键安装: 1.环境Centos 6.6 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata svnserve ...
随机推荐
- MySQL入门——在Linux下安装和卸载MariaDB
MySQL入门——在Linux下安装和卸载MariaDB 摘要:本文主要学习了如何在Linux系统中安装和卸载MariaDB数据库. 查看有没有安装过MariaDB 使用命令查看有没有安装过: [ro ...
- django6-orm进阶操作
1.创建django环境的脚本 在自定义脚本中操作orm ,但是自定义脚本中不具备django的环境 ###test.py 脚本,引入django的环境即可使用orm操作数据库import os if ...
- PHP odbc_errormsg ODBC 函数
定义和用法 odbc_errormsg - 获取最后一条错误消息 语法 odbc_errormsg ( [ resource $connection_id ] ) 返回包含最后一个ODBC错误消息的字 ...
- msf中的情报搜集
msf中的情报搜集 被动的信息搜集 使用被动的.间接的信息搜索技巧,可以在目标不察觉的情况下挖掘目标的相关信息. 公开渠道情报搜集 对公开的和已知的信息进行检索筛选,获取到目标的情报集合,一系列的 ...
- bacula备份工具
源码下载:http://www.bacula.org bacula适合数据业务量巨大,每天都在迅速增长,还需要以tar打包方式进行低级备份而且没有异地容灾策略.Bacula是一个完美的增量备份功能,同 ...
- redis分享
Redis介绍 ´Redis是一种基于键值对的NoSQL数据库. ´Redis基于内存来存放数据. ´速度快,官方给出读写性能可达到10万/秒(数据存内存,C语言实现,单线程架构). ´丰富的数据结构 ...
- Apache(基于IP地址)
1.Apache的安装 (1)先用命令“cat /etc/passwd|grep apache”,查看有有没有Apache ①如果有Apache,我们就不用再安装 ②如果没有,我们就安装一下 (2)使 ...
- luoguP2824 [HEOI2016/TJOI2016]排序(二分答案做法)
题意 这题的思路实在巧妙. 首先我们肯定无法对区间进行sort,那么考虑如何使得sort简化. 问:如果给的序列是一个0-1序列,让你区间排序,那么怎么做? 答:建一颗线段树维护sum,求出当前区间中 ...
- CF-1208 C.Magic Grid
题目 大意:构造一个n行n列的矩阵,使得每一行,每一列的异或和都相等,n是4的倍数. 先看4*4的矩阵,我们很容易构造出符合要求的矩阵,比如 0 1 2 3 4 5 6 ...
- 【BZOJ5457】城市(线段树合并)
点此看题面 大致题意: 一棵树上每个点有颜色\(a_i\)和权值\(b_i\),求以每个点为根的子树内权值和最大的颜色及其权值和. 线段树合并 这是一道线段树合并板子题. (关于线段树合并,可参考我的 ...