问题标签 [wsl-2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 无法使用 WSL2 收听
并尝试在安装在 WSL2 上的 Ubuntu 20.04 上运行它。
但是,当我尝试浏览到“http://127.0.0.1:8000”时,服务器无法访问。
为了验证这不是端口阻塞问题,我跑了python -m http.server
并且网页加载正确。
可能是什么问题?
===更新====
出于某种原因,浏览到
http://localhost:8000
有效,在这个线程中提到
docker - 使用在 WSL 2 中运行的 Webpack-dev-server 访问 LAN 上的 localhost
我正在尝试使用外部设备使 webpack-dev-server 在我的本地网络上工作。整个项目在 Windows 10 上的 WSL2 Debian 10 中运行。我还没有在任何地方发现这个特殊问题,所以决定发布这个。
所以该项目是一个在 docker 中运行的 WordPress 站点,webpack-dev-server 将其代理到端口 3000(全部在 WSL 中)。一切都在本地机器上按预期工作:该站点在 localhost:3000 的 Windows 中可用,并且工作正常。
但是,我也想在我的移动设备上访问它。从我在网上找到的内容来看,只要连接到移动设备上的主机 ip(在正确的端口上),只要它在同一个网络上,它就应该可以工作。我的电脑和手机在同一个家庭wifi网络上,所以没关系。
我已经尝试过wsl适配器ipv4和wifi适配器ipv4地址,但据我了解,如果一切都连接到wifi,应该使用无线局域网适配器Wi-Fi吗?因此,使用这些 ip 中的每一个都会导致我的手机(chrome android)出现以下连接错误:
- wsl 适配器 ip:3000 给出 ERR_CONNECTION_TIMED_OUT,所以可能不是那个
- wifi 适配器
<<wifi-adapter ip>>
:3000 给出 ERR_EMPTY_RESPONSE - wifi 适配器
<<wifi-adapter ip>>
(无端口)以某种方式解析为地址栏中的“localhost”并给出 ERR_CONNECTION_REFUSED
我已经尝试过:
- 添加
host: '0.0.0.0'
到 webpack 配置。 - 在 Windows 中使用转发端口 3000
netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=127.0.0.1
- 在 Windows 中使用转发端口 3000
netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=<<wifi-adapter ip>>
- 禁用 Windows Defender 防火墙
- 添加
public: '<<wifi ip>>:3000'
到 webpack 配置。 - 尝试不同的端口,我尝试了 5040、8000 和 8080。
- 如果我尝试添加
host: '<<wifi-adapter ip>>'
,webpack 在启动时会抛出一个错误:Error: listen EADDRNOTAVAIL: address not available <<wifi-adapter ip>>:3000
,发生在各种不同的端口上。
无论是在主机 PC 上还是在尝试在 LAN 上连接时,每一个都对行为没有明显影响。我发现有关 webpack-dev-server 的问题在 LAN 上无法访问,通常的解决方案是添加host: '0.0.0.0'
,但是这些问题都没有提到wsl的使用。此外,包括 wsl 的类似问题通常将端口转发和防火墙作为可接受的答案,但在我的情况下,这些似乎都没有影响。我还没有找到包含wsl和webpack的连接问题的问题和解决方案,所以我真的没有想法,因为我不清楚如何解决这个问题,看看问题是否出在windows主机上,wsl ,我的家庭网络还是别的什么?所以也许有人在这里看到了一个明显的配置错误?同样,它在主机 PC 本身上运行良好。任何洞察力都非常受欢迎。
Webpack 配置(仅 devserver 部分):
ipconfig 的输出是:
编辑:
我设法使用修复组合来修复它,但我真的需要所有这些,或者它只是不起作用:
- 端口转发(如@Luis 脚本,但我使用了这个,其中包括防火墙规则)
- 有时我想使用的端口由于某种原因在我的系统上被阻止,我需要终止侦听该端口的现有进程。但是端口 3000 只是不想和我一起做任何事情,所以我只使用 8000
- windows快速启动被禁用,这以在wsl2上搞乱本地主机而闻名
- 在 Windows 主机文件中手动启用 localhost(从这里获取)
- 始终使用 0.0.0.0 作为在 wsl2 中运行的任何服务器上的主机
然后我可以通过 Windows 中列出的 ip 访问我的 LAN 网络上的服务器(在我的例子中是 192.168.xx )。我现在使用这个 webpack 配置:
注意:对于 WordPress,我必须添加另一个修复程序,因为从 LAN 访问时没有加载任何样式或脚本,因为 WordPress 在数据库中“硬编码”站点 url,然后在访问时抛出一堆未找到和 cors 错误来自 http://localhost 以外的任何站点。wp_make_link_relative()
就像这个简单的插件一样,它通过在 WordPress 本身中使用得到了修复。
ubuntu - 我无法在 WSL2 开启的 Windows 10 上使用 npm 命令(ubuntu 终端)
我试图让 npm 命令工作,但它不想。正如我在标题中所说,我使用的是 Windows WSL2。很久以前我已经用 Git Bash 安装了 nodejs,但现在我需要它在我的 ubuntu 终端上工作。我该如何解决这个问题?
我的 ubuntu 终端:
angular - wsl2 中的 Angular-CLI 比默认的 powershell 慢得多是正常的吗?
在我最近的项目中,我使用 Angular 和 Angular-CLI,我注意到在 wsl2 终端(使用 ubuntu 20.04)中基本的 CLI 命令(如ng g c
、ng serve
等ng build
)比在默认的 powershell 上花费更多的时间。
任何意见或建议如何解决这个问题?
windows-subsystem-for-linux - 在 WSL2 中安装 v4l2loopback
我目前正在努力v4l2loopback
在 WSL2 上进行安装。
一些上下文:
最近,我读到了关于在 Linux 中创建一个虚拟视频设备,然后从图像或视频文件模拟它的输出。
这对于测试或开发目的非常重要,例如,为了附加一个虚拟网络摄像头,将视频文件作为循环复制到 android 模拟器。
经过一些研究,我得出的结论是我不想使用桌面应用程序,即使在 CI 或类似的环境中运行它也可能很容易,因此v4l2loopback看起来不错,但我目前是 Windows 用户。
我在我的机器上启用了 WSL2,下载了 repo,并尝试执行make
repo 描述中的命令。
我用谷歌搜索了一下,我在 GitHub 上发现了这个问题,其中提到了类似的输出(对于另一个工具)。在那里,有人提到可以调整WSL2 内核配置以添加更多模块(也许并希望其中一个可以使 v4l2-loopback 工作,或者至少我认为)。
我还用谷歌搜索了自定义 WSL 构建,但我不确定我需要什么才能让它工作,或者即使我朝着正确的方向前进。
为了v4l2loopback
工作,我错过了什么吗?
如果只有自定义 WSL2 构建可以工作,我应该如何进行?
提前致谢
node.js - 在 WSL2 中运行的 Docker 容器中运行 headful Puppeteer
所以我有一台运行 VcXsrv 的 Windows 10 机器。我已经安装了 WSL2,在我的 WSL2 环境中,我可以在 Headful 模式下运行我的 Node.js Puppeteer 应用程序而不会出现问题。
这里的问题是我现在想在 WSL2 上运行的 Docker 容器中运行应用程序,而不是直接在 WSL2 中运行。我已经设置了一个 docker 容器,并且该应用程序在无头模式下工作,但我不知道如何配置 Docker 容器以连接到在 Windows 主机上运行的 X 服务器。
连接必须从 Docker 到 WSL2,然后到 Windows。
puppeteer 抛出的错误非常通用:
我在 docker 容器内设置了 DISPLAY 环境变量,使其具有与我的 WSL2 环境相同的值:
当直接在 WSL2 中运行应用程序时,此相同的值有效
angular - ng 命令需要很长时间才能启动
我遇到了 Angular 的问题:每次我输入命令(ng --version
,ng serve
等)时,命令都需要很长时间才能启动。
比如ng serve
启动需要1分5秒,编译只需要10秒,ng --version
大约需要15秒。如果我使用命令time ng server
(不存在),输出如下:
我正在研究 WSL2、Ubuntu 20.04(安装在辅助磁盘、HDD 上,而不是 SSD 上)。我以前在 Windows 上安装了 npm,但在子系统上安装 npm 后我将其删除。
我在 github 上找到了这个 ISSUE,https://github.com/angular/angular-cli/issues/3484但它没有多大帮助。
npm --version
: 6.14.4
nodejs --version
: v10.19.0
docker - 在用于 Jupyter 的 WSL2 上与 docker 共享 Windows 文件夹
我目前尝试使用 docker 使用 WSL2 设置我的数据科学环境。所以我的目标是将所有内容存储在 Windows 上,使用 Windows Docker Desktop 在 WSL2 上的容器中运行 Jupyter。因此,我尝试在我的 docker 容器中安装 c 驱动器,并在 Powershell(不是 Linux shell)上执行以下代码:
它只绑定一个新的工作目录,而不是我的 Windows 驱动器。我真的很感激任何帮助!
谢谢!