首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在win10的WSL中设置前端开发环境

在win10的WSL中设置前端开发环境

作者头像
江米小枣
发布于 2020-06-15 10:02:50
发布于 2020-06-15 10:02:50
4.3K00
代码可运行
举报
文章被收录于专栏:云前端云前端
运行总次数:0
代码可运行

经过不断的迭代,Win10 下已经发布多时的 Linux 子系统(WSL - Windows Subsystem for Linux)现在已经比较成熟了;WSL 默认只是不带图形化界面的终端窗口,这个由开放心态带来的新组合,补齐了 Windows 在终端操作和包管理等方面的短板,加上 windows 下丰富的软件生态,开发体验上已经可以简单类比甚至局部超越 macOS 了。

系统的安装和配置方法网上有很多了,本文将主要配置过程记录下来,并尝试指出一些前端开发项目中要特别注意的地方。

安装 ubuntu

  • 按此文设置(看完“运行WSL”章节即可):Win10 安装 Linux 子系统,本文以安装了 Ubuntu 为例
  • 系统版本比较新的可以按这篇 Win10 安装 Linux 子系统 (wsl2) 安装
  • 需要注意,装完后的实际目录在 C:\Users\<YOURNAME>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_<HASH>\LocalState\rootfs;可以酌情在桌面创建快捷方式等

查看子系统版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lsb_release -a

记录下 18.04 等版本,便于相关配置项的选择

更换软件源

这是个可选的步骤,用速度更快的国内的软件源替换默认的官方地址。

首先备份原配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

查看 https://opsx.alibaba.com/mirror 中 ubuntu(上一步查出的对应版本) 的“帮助”,

参考其说明后,其实直接做以下替换操作即可:

  • 打开/etc/apt/sources.list,替换默认的//archive.ubuntu.com/等url为//mirrors.aliyun.com
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 以 vim 编辑器为例,替换语句为:
%s/\(\/\/\)\(.*\)\.ubuntu\.com/\/\/mirrors\.aliyun\.com/g

更新系统软件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get update && sudo apt-get -y upgrade

安装 git 和 oh-my-zsh

oh-my-zsh 是 linux/macOS 上通用的一个 shell 优化框架,可以很好的支持 git 等;依次执行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install zsh
chsh -s /bin/zsh

# 把第一行的/bin/bash改成/bin/zsh,最后一行同样检查一下
sudo vim /etc/passwd

sudo apt-get install git

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安装 nodejs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install curl software-properties-common

# 版本号可以换成 12.x 等
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

sudo apt-get install -y nodejs
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 检查版本(若不成功可以重启 wsl 命令行窗口再试)
node -v
npm -v

设置git和公钥

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 全局设置
git config --global user.name YOURNAME
git config --global user.email YOURNAME@foo.com
# 生成
ssh-keygen -t rsa -C "YOURNAME@foo.com"
# 查看
cat .ssh/id_rsa.pub

使用 VSCode 开发 WSL 下的项目

无论是 WSL1 还是 WSL2,和 windows 环境下的原生软件结合工作时都还有一定局限性。比如普遍用 webpack 热更新 驱动的前端开发项目,虽然 npm 命令能正常运行,但在 win10 下的编辑器软件中更改项目代码后,仍无法完成整个开发工作流:

  • 最早期的 WSL 根本监听不到文件变化,webpack 实时编译不执行
  • 较新的 win10 版本中可以正常监听并重新编译,但浏览器不会随之更新

目前唯一成功的方案是在 VSCode 中结合插件达成的,按文档 https://code.visualstudio.com/docs/remote/wsl 做如下设置:

  • 在 VSCode 中安装 Remote Development 扩展包
  • 在 wsl 窗口中进入要开发的项目目录,运行 code . 安装必要的组件
  • VSCode 自动重启后,在 wsl 中运行 npm 命令正常开发即可

同时要注意这里项目中的 npm 依赖项要在 wsl 环境下重新 install,原来在 cmd / powershell 下安装过的是无效的。

结合 WSL 使用 Docker in Windows10

如果项目涉及到要用 docker 打包,可以在 win10 中先安装好 Docker,并作如下设置:

  • 开启 Docker in Windows10 设置中的 Expose daemon on localhost:2375 without TLS
  • sudo usermod -aG docker $USER
  • sudo apt-get install -y python3 python3-pip
  • pip3 install --user docker-compose
  • echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.zshrc && source ~/.zshrc

--End--

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
每周学点大数据 | No.51 众包的特点
NO.50 众包特点 Mr. 王:我们讨论了这么多众包的例子,现在来研究一下众包的一些特点。你先来说说,一个众包算法需要由哪些部分组成? 小可:首先要有一批请求任务的人;其次要有一群完成任务的人;还应该有一个管理任务的平台。请求任务的人把任务发布到平台上,平台会去搜寻有兴趣来做这些任务的人,然后这些工作者将答案返回给平台。平台收集了大量的答案之后,还要将答案交给提交任务的人。 Mr. 王满意地说:总结得不错,这些提交任务的人,我们一般称之为请求者。而这些完成任务的人,我们称之为工人。整个结构梳理得很清楚,不
灯塔大数据
2018/04/04
1.2K0
每周学点大数据 | No.50 众包应用举例
No.50期 众包应用举例 小可:那除了维基百科之外,众包还有哪些应用呢? Mr. 王:其实众包在业界的应用还是非常广泛的。大量的公司和网站都使用了众包算法, 有些众包算法是显性的任务分配和任务处理,也有些众包算法是隐性的。比如这种特殊的验证码: 小可:哦,验证码还是很常用的,只是这个验证码中有两个单词。在登录网站时,为了防 止一些自动的脚本攻击网站,会将一个机器难以识别而人容易识别的图像文字放在登录窗口中,只要把相应的文字输进去就可以登录了。 Mr. 王:不错,但是这个验证码比较特殊,之所以使用了两个
灯塔大数据
2018/04/04
1.4K0
每周学点大数据 | No.52众包算法例析
NO.52 众包算法例析 小可:讨论了这么多,我还是想通过一个具体的众包例子来了解一下众包算法。 Mr. 王:好,我们就从计算机的角度用具体的例子来分析一下众包算法。通过我们前面讨论的内容,你能不能想
灯塔大数据
2018/04/04
1.5K0
每周学点大数据 | No.52众包算法例析
每周学点大数据 | No.77 众包算法实践——成为众包工人
编者按:灯塔大数据将每周持续推出《从零开始学大数据算法》的连载,本书为哈尔滨工业大学著名教授王宏志老师的扛鼎力作,以对话的形式深入浅出的从何为大数据说到大数据算法再到大数据技术的应用,带我们在大数据技术的海洋里徜徉~每周五定期更新 上期回顾&查看方式 在上一期,我们学习了众包算法实践——认识 AMT的相关内容。PS:了解了上期详细内容,请在自定义菜单栏中点击“灯塔数据”—“技术连载”进行查看;或者滑到文末【往期推荐】查看 No.77 众包算法实践——成为众包工人 小可 :再来看一个任务。咦,为什么这个任务无
灯塔大数据
2018/04/03
2.2K0
每周学点大数据 | No.77 众包算法实践——成为众包工人
每周学点大数据 | No.76 众包算法实践——认识 AMT
本文为灯塔大数据原创内容,欢迎个人转载至朋友圈,其他机构转载请在文章开头标注 编者按:灯塔大数据将每周持续推出《从零开始学大数据算法》的连载,本书为哈尔滨工业大学著名教授王宏志老师的扛鼎力作,以对话的形式深入浅出的从何为大数据说到大数据算法再到大数据技术的应用,带我们在大数据技术的海洋里徜徉~每周五定期更新 上期回顾&查看方式 在上一期,我们学习了Spark 实践案例——PageRank的相关内容。PS:了解了上期详细内容,请在自定义菜单栏中点击“灯塔数据”—“技术连载”进行查看;或者滑到文末【往期推荐】
灯塔大数据
2018/04/03
1.8K0
每周学点大数据 | No.76 众包算法实践——认识 AMT
每周学点大数据 | No.57基于内容的推荐方法
NO.57 基于内容的推荐方法 Mr. 王:最常见的一种方法就是基于内容的推荐。基于内容的推荐思想非常的清晰、简单,就是向用户推荐与他评分高(喜欢)项目相类似的项目。 小可:嗯,很多电影网站根据用户的
灯塔大数据
2018/04/04
7020
每周学点大数据 | No.57基于内容的推荐方法
每周学点大数据 | No.5算法的分析之图灵机
No.5期 算法的分析之图灵机 小可:那计算机科学有没有对易解和难解问题进行一个相对严格的界定呢? Mr. 王:有的,这里既然提到了多项式算法和易解难解问题,那么我们就简单来谈一谈NP完全性的问题,这有助于对后面一些问题的理解。真正的NP 完全性讨论和复杂度归约是比较复杂的主题,一般要到硕士生阶段才会接触,这里我们只简单谈谈。提到NP完全性,我们先要了解前面提到过的“图灵机”。 小可:我也很好奇,这个“图灵机”究竟是什么呢? Mr. 王:想要理解图灵机,需要具有一定的自动机理论基础,最好先了解一下有穷自动
灯塔大数据
2018/04/09
8350
每周学点大数据 | No.5算法的分析之图灵机
每周学点大数据 | No.10何谓大数据算法
No.10期 何谓大数据算法 Mr. 王:下面我们就来谈谈大数据算法与一般算法的区别和联系。 小可:好。 Mr. 王:前面我们讲了如何评价一个算法,在相对比较小的数据规模下,我们往往可以接受多项式时间算法。但是当数据量很大时,很多小数据量上我们能够在可以接受的时间内解决问题的方法,也都变得不再可以接受。虽然有些算法是多项式算法,但是它的高阶项指数却是非常大的,导致当数据规模大起来时,它的增长速度会变得非常快。对于较大的数据量,资源约束和时间约束都变得相对很苛刻,我们要对可以接受的时间界限进行重新思考。 小
灯塔大数据
2018/04/08
9030
每周学点大数据 | No.36并行算法
No.36期 ‍并行算法‍ Mr. 王:‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍今天我们来谈一个新的话题——并行算法。 小可:并行?并行是不是说,一个任务由多个人同时做呢? Mr. 王:通俗地讲是这样的。有很多问题,当数据规模比较大时,如果单独由一台计算机来做,就会变得费时费力,我们希望可以将一个问题交由多台计算机进行处理和解决。这就是我们要研究的并行算法。 小可:那具体要怎么做呢?如果把整个任务分开给多台计算机来做,我们就要想办法把任务分割开,还要对它们提交的结果进行综合,这对于一些复杂的问题还是有一定难度
灯塔大数据
2018/04/08
7070
每周学点大数据 | No.36并行算法
每周学点大数据 | No.48 计算子图同构
No.48期 计算子图同构 Mr. 王:我们再来看一个例子——计算子图同构。这个问题给定(节点有标签)数据图G和查询图P,找到G 中和P 同构的子图。这是一个经典的NP 完全问题。 小可:那求解岂不是很困难? Mr. 王:在实际情况下,虽然数据图G 会比较大,可能有上G 个节点,但查询图P 一般会比较小,因为查询图一般是由查询需求表现出来的,查询需求往往没有那么大。 小可:如果依然利用Pregel 平台的思想来解决问题,要怎么做呢? Mr. 王:考虑到Pregel 平台具有面向节点编程的思想,我们就要考虑
灯塔大数据
2018/04/04
1.3K0
每周学点大数据 | No.48 计算子图同构
每周学点大数据 | No.2大数据的特点、应用和算法
No.2期 大数据的特点、应用和算法 一、大数据的特点和应用 Mr. 王:大数据具有较大的数据量,和一般的数据相比,其具有如下一些特点。 —在数据量上,大数据是通过各种设备产生的海量数据,其数据规模极
灯塔大数据
2018/04/09
9530
每周学点大数据 | No.2大数据的特点、应用和算法
每周学点大数据 | No.53数据挖掘概述与分类
NO.53 数据挖掘概述 Mr. 王:今天我们来讨论一个新的话题,你听说过数据挖掘吗? 小可:这个名字倒是挺有意思的啊,不过数据是一种抽象的、虚拟的概念,要怎么去挖掘呢? Mr. 王:数据挖掘是时下非常热门的一个领域。在大数据时代的背景下,数据量变得非常大,不过我们现在处于一种拥有的数据量大而“知识”匮乏的状态。 小可:这个“数据”和“知识”分别怎么解释呢? Mr. 王:比如某商家存有大量会员的信息数据,现在公司有一种新产品,他们想知道这些会员中哪些人有更大的可能性去购买这种新产品,从而有效地制定下一步营销
灯塔大数据
2018/04/04
6030
每周学点大数据 | No.53数据挖掘概述与分类
每周学点大数据 | No.75 Spark 实践案例——PageRank
本文为灯塔大数据原创内容,欢迎个人转载至朋友圈,其他机构转载请在文章开头标注 编者按:灯塔大数据将每周持续推出《从零开始学大数据算法》的连载,本书为哈尔滨工业大学著名教授王宏志老师的扛鼎力作,以对话的形式深入浅出的从何为大数据说到大数据算法再到大数据技术的应用,带我们在大数据技术的海洋里徜徉~每周五定期更新 上期回顾&查看方式 在上一期,我们学习了Spark 的核心操作——Transformation 和 Action的相关内容。PS:了解了上期详细内容,请在自定义菜单栏中点击“灯塔数据”—“技术连载”进行
灯塔大数据
2018/04/03
1.2K0
每周学点大数据 | No.75 Spark 实践案例——PageRank
每周学点大数据 | No.6算法的分析之易解问题和难解问题
No.6期 算法的分析之易解问题和难解问题 小可:嗯,我懂了。可是您前面说现在的计算机在模型上都可以称作图灵机,这个要如何理解呢? Mr. 王:你能思考这个问题是非常好的。其实现在电子计算机可以解决的所有问题,都可以用图灵机解决,就用2+3 这个例子,我们一开始将“算式”写在纸带上,相当于“输入”;图灵机的执行过程相当于计算机对问题进行处理;留在纸带上的结果相当于“输出”;状态转换图,相当于计算机程序;纸带在执行过程中相当于内存,读写头一部分是CPU,同时也是读写内存的设备。 小可恍然大悟,说:这么一说,
灯塔大数据
2018/04/09
1K0
每周学点大数据 | No.6算法的分析之易解问题和难解问题
每周学点大数据 | No.1何谓大数据
No.1期 带你认识大数据 咚咚咚。 一天下午,王老师的门被敲响了。 Mr. 王:请进。 门被轻轻地推开了,随后被有礼貌地关上了。 Mr. 王:你就是小可吧? 小可:是的,王老师您好,我就是前几天与您联系的那个学生,我想学习些大数据方面的知识。 Mr. 王:好啊,咱们可以一起讨论,看你不太面熟,你是计算机专业的学生吗? 小可:我是计算机专业的大一新生,会用程序设计语言完成一些很简单的程序设计,不过到目前为止我还没有学习过任何关于大数据算法的课程,我也并不了解什么是算法设计与分析,就连算法是什么都不太清楚,
灯塔大数据
2018/04/09
9060
每周学点大数据 | No.1何谓大数据
每周学点大数据 | No.44 MapReduce 图算法概述
No.43期 MapReduce 图算法概述 Mr. 王:MapReduce 作为一种经典的并行编程框架,可以用于解决很多问题,包括一些图论问题。在客观世界中,很多问题都可以抽象为图论问题。前面我们提到过如何用磁盘算法来解决一些图论问题,现在我们尝试用MapReduce 框架,以并行计算的观点来解决一些图论问题。 还是先举个例子吧。你会经常去使用一些社交网络吧。 小可:是的,现在通过社交网络,我可以非常方便地与同学联系。社交网络上人与人之间的好友连接关系就可以抽象成一个图。 Mr. 王笑着说:有没有想过
灯塔大数据
2018/04/04
1.2K0
每周学点大数据 | No.44  MapReduce 图算法概述
每周学点大数据 | No.46 MapReduce 平台的局限
No.46期 MapReduce 平台的局限 Mr. 王:前面我们讲了许多基于MapReduce 的并行算法,现在我们讨论一个新话题——超越MapReduce 的并行大数据处理。虽然MapReduce 可以有效地解决很多并行计算的问题,但是经过前面对MapReduce 的使用我们也发现了一些常见的问题;这些问题用MapReduce 解决虽然是可行的,但是实现和执行起来多少会有一些不方便。 小可:嗯,MapReduce 虽然是一个很好用的平台,但是也不是完美的。 Mr. 王:的确,时至今日,Google
灯塔大数据
2018/04/04
7780
每周学点大数据 | No.46  MapReduce 平台的局限
每周学点大数据 | No.35缩图法(二)
No.35期 缩图法(二) Mr. 王:现在我们一步一步来分析。首先,每加入一条边,都会构成一个新的连通分量,或者在已有的连通分量上增加一个点,这意味着每一个强连通分量的大小至少为 2。 由此可知,每
灯塔大数据
2018/04/08
8120
每周学点大数据 | No.35缩图法(二)
每周学点大数据 | No.3算法设计与分析理论
No.3期 算法设计与分析理论 在计算机科学中,研究算法的设计和评价算法“好坏”的分支,称为算法设计与分析理论。它研究如何去设计解决问题的算法,同时给出一个对算法在计算机中执行的时间和空间效率,评价这个算法是不是足够快、占用的空间足够小。到目前为止,高速的 CPU 和高速大容量的寄存器、缓存和内存依然是很昂贵的计算资源。另外,CPU 的运算速度和内存容量相对目前的大数据来说依然是不够的。所以设计高效率的算法,一方面是为了节约时间;另一方面也是为了节省金钱。从另一个方面讲,如果计算机的速度非常快、内存非常大
灯塔大数据
2018/04/09
8330
每周学点大数据 | No.3算法设计与分析理论
每周学点大数据 | No.59协同过滤模型(下)
NO.58 协同过滤模型(下) Mr. 王:是的,前面的那种加权平均的形式,我们是可以直接利用的,其中的量稍作修改即可: 此时式中,Sij 表示的是i 和j 两种项目的相似度。j 就是来自x 评价过的
灯塔大数据
2018/04/04
7520
每周学点大数据 | No.59协同过滤模型(下)
推荐阅读
相关推荐
每周学点大数据 | No.51 众包的特点
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验