win10通过samba实现在主机中开发虚拟机中编译

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zgrbsbf/article/details/82048992

因为我是进行前端开发的,所谓的编译是指的是编译angular项目

公司的平台基于angular搭建了前端开发环境,开发的时候要开启一个类似angular中ng start的命令,所有的一切麻烦都是这个命令引起的。公司开发的不支持windows系统,而我使用的是win10,不想换mac,于是我就开始了折腾。。。

尝试1:使用win10的linux子系统wsl

那好啊,反正win10里面可以使用linux子系统。。。
先从win10 应用商店里面安装ubuntu 18.04版本,之后搭建公司的开发环境,最后跑起来:
这里写图片描述
诚如此,则完美,
这里写图片描述
不行啊,wsl有严重的问题,开发的时候编译angular导致cpu飙升的100%,并且根本就编译不出来结果,浏览器根本就打不开本地的网页。

我在网上查了查,wsl访问win10 的文件系统的时候会有很大的I/O性能问题,很多地方给出的解决方案是关掉win10自带的defender,我关掉了之后还是不起作用。

失败

尝试2:完全在ubuntu虚拟机中开发

没办法了,不想换mac,还得继续折腾。使用Oracle VM VirtualBox安装了个ubuntu 虚拟机。
这中方法确实可以实现,没有什么大问题,但是我最终还是放弃了,因为用不习惯ubuntu,单单是为了把输入法调成中文就费了好大的劲,当然对于高手来说这很简单了。总感觉有这么好用的win10不用偏偏用虚拟机有点怪怪的,各种操作都不顺手
放弃

尝试3:在linux虚拟机中访问windows的文件并编译

希望在windows中使用webstorm进行开发,在linux虚拟机中进行编译。

3.1 在vm virtualbox中设置共享文件夹

这里写图片描述

3.2 挂载

这里写图片描述

  • 进入/mnt
  • 创建新文件夹rrx3
  • mount挂载设置中配置的共享文件夹rrx3
  • ls查看下,有了
    然后在linux中打开了编译功能,完美了。。。出现了在尝试1中同样的问题,CPU 100%。
    由此得到了结论,不管是wsl还是虚拟机中的linux访问windows的文件系统都会存在严重的性能问题

尝试4:在windows中访问虚拟机中的文件进行开发,在虚拟机中编译

既然CPU 100%的问题是因为在linux中编译windows系统中的文件引起的,那么我把文件放在虚拟机中,想办法在windows中的webstorm中打开就可以了吧。

4.1 使用samba在linux虚拟机中开启共享

  1. 安装samba
  2. 配置samba
    配置文件在/etc/samba/smb.conf,为了不必要的麻烦,可以用root来编辑,在末尾加上,

    [vm]
    path = /home/manny/
    browseable = yes
    writable = yes
    guest ok = yes

    我忘记之后需不需要重启服务了,反正实在不行就重启下虚拟机

  3. 在linux虚拟机的文件夹下执行:chmod -R 777 *

  4. 在windows中添加网络映射:windows + R 运行 – \10.0.0.5(10.0.0.5是我的虚拟机的ip地址)–看到如下所示的文件夹:这里写图片描述然后右键,映射网络驱动器,选一个,比如Z,之后在windows的文件系统中看到了,如下图:这里写图片描述
  5. 可以在webstorm中打开了,就像本地操作一样,也可以进行git的提交和push操作
  6. 然后就可以在linux中开启编译功能了,实现了在windows中使用webstorm开发虚拟机中的项目。

终于成功了

有些人使用ftp来实现,这种方法也不错,不过这样的话windows系统中还需要保存一份代码。

尝试5:在windows中使用ssh登录

继续完善尝试4中的部分,虽然在上面实现了在windows中使用webstorm编辑代码,在linux虚拟机中进行编译,但是有个缺点,终端窗口还得放在虚拟机中,如果能够在webstorm的terminal中直接操作就更好用了。
在win10的命令行中:
这里写图片描述
原因是因为虚拟中少东系:
这里写图片描述

好了,可以登陆了

尝试6

在网上看到很多用phpstorm进行远程开发的,也还有使用ftp把文件同步到远程的,我想了想,这种方式对我不适用,因为我在windows下安装项目的npm依赖的时候报错,使用wsl安装的时候有时候也报.staging文件找不到,换句话说就是必须在真正的linux环境下才能完整安装依赖。但是如果这一步通过的话,就可以实现在把项目文件放在windows系统上,在windows上使用webstorm进行开发,代码修改后同步到linux虚拟机中进行编译了,也很好。

参考文献:
https://blog.csdn.net/u013963380/article/details/72599793
https://blog.csdn.net/wszll_Alex/article/details/51510655?locationNum=11&fps=1

猜你喜欢

转载自blog.csdn.net/zgrbsbf/article/details/82048992