切换至 zsh 后执行 npm run * 报错

2022-04-08 11:46:35 +08:00
 wdssmq

wsl2 + Ubuntu 18 ,本来是为了解决 Docker 不能自启,折腾了个半天装了个 zsh

「折腾」莫名其妙得解决了 wsl2 内 Docker 的自启动_电脑网络_沉冰浮水:

https://www.wdssmq.com/post/20140328160.html

Docker 自启目测是解决了,但是今天跑 node 项目又不行了。。

/usr/bin/env: ‘bash\r’: No such file or directory

目前切换回 bash 可以恢复 npm 执行。

我的需求就是 1 、Docker 能正常自启; 2 、不影响其他使用;

zsh 之前隐约看到过推荐,有啥优点目前也不清楚,并不是特别需要用。。

2878 次点击
所在节点    Linux
15 条回复
ysc3839
2022-04-08 11:53:15 +08:00
bash\r 这个一看就是文件的换行符使用了 CRLF ,其中的 CR 被当成了行内的字符作为参数传递了
Vegetable
2022-04-08 11:55:00 +08:00
请直接使用 docker desktop for windows with wsl2 backend
ScepterZ
2022-04-08 11:56:29 +08:00
win 现在也都支持\n 换行了,建议统一都用\n ,git 的也配置一下不要给转换了

你之前能用估计是 bash 默认处理了\r\n ,zsh 没有
liubaicai
2022-04-08 12:03:38 +08:00
请直接使用 docker desktop for windows with wsl2 backend +1
wdssmq
2022-04-08 14:50:01 +08:00
@ysc3839 #1
@ScepterZ #3

vite + vue 项目,执行 npm run dev 时报这个错误,有配置 .editorconfig 并且 end_of_line = lf ,所以是哪个文件换行不对也没提示,node_modules 里的那些??

@Vegetable #2
@liubaicai #4

所以 docker desktop 对接的是我已经安装在 Ubuntu 18 里的 Docker 还是另外安装一个子系统?
liubaicai
2022-04-08 14:55:09 +08:00
@wdssmq 不是对接那个,也不是另外安装子系统,是用的当前子系统装的,(可能会跟你已经装的冲突),建议删除 wsl 里装的,直接用 windows 安装,装完后在 wsl 也能用,自带自启动
bootvue
2022-04-08 15:01:20 +08:00
zsh 中 * 属于特殊字符 加个单引号 '*' 试试
bootvue
2022-04-08 15:09:17 +08:00
@bootvue 回复了个鸡儿 zsh 可以卸载掉 换回 bash 或者装个 my-zshell 试试 还是在虚拟机里泡 docker 比较好
SilenceLL
2022-04-08 15:27:57 +08:00
docker desktop 不能商用。。
liubaicai
2022-04-08 16:06:57 +08:00
@SilenceLL 商用更不会用 wsl 辣
thedrwu
2022-04-08 16:57:03 +08:00
1. zsh 和 posix shell 的 glob 失败规则不太一样
2. 像是 CRLF 的锅

听人吹 zsh 和 fish 就如听人强调自己用 Arch 一样🤨
wdssmq
2022-04-08 17:03:26 +08:00
wsl -l -v

NAME STATE VERSION
* Ubuntu-18.04 Running 2
docker-desktop Running 2
docker-desktop-data Running 2

安装 docker desktop 后会这成这样。。
psyngw
2022-04-08 17:39:43 +08:00
我记得我好像遇到过类似的情况。给个思路
你看下在 zsh 里 echo $PATH 是不是混了 Windows 的路径进去了,调用位置出错了。

是的话
$ sudo vim /etc/wsl.conf

[interop]
appendWindowsPath = false

重启 wsl 看看。
或者自己在 zshrc 里按需处理一下 $PATH 看看(比如你需要用到 `code .`之类的必须导入 path)

或者用 nvm 哈哈
aloxaf
2022-04-08 17:46:06 +08:00
哎,所以说要看一手资料

你引用的那篇博客引用的英文博客原文,明明强调了「 Please note, I’m using the zsh shell. If you’re using bash (like most people), you’ll need to change .zshrc by .bashrc.」,结果到这篇博客就变成必须使用 zsh 了,然后到你这再折腾一轮……
wdssmq
2022-04-08 18:03:51 +08:00
@aloxaf #14 尴尬,,原来如此。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/845669

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX