V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wdssmq
V2EX  ›  Linux

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

  •  
  •   wdssmq ·
    wdssmq · 2022-04-08 11:46:35 +08:00 · 3057 次点击
    这是一个创建于 960 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 之前隐约看到过推荐,有啥优点目前也不清楚,并不是特别需要用。。

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

    你之前能用估计是 bash 默认处理了\r\n ,zsh 没有
    liubaicai
        4
    liubaicai  
       2022-04-08 12:03:38 +08:00
    请直接使用 docker desktop for windows with wsl2 backend +1
    wdssmq
        5
    wdssmq  
    OP
       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
        6
    liubaicai  
       2022-04-08 14:55:09 +08:00
    @wdssmq 不是对接那个,也不是另外安装子系统,是用的当前子系统装的,(可能会跟你已经装的冲突),建议删除 wsl 里装的,直接用 windows 安装,装完后在 wsl 也能用,自带自启动
    bootvue
        7
    bootvue  
       2022-04-08 15:01:20 +08:00
    zsh 中 * 属于特殊字符 加个单引号 '*' 试试
    bootvue
        8
    bootvue  
       2022-04-08 15:09:17 +08:00
    @bootvue 回复了个鸡儿 zsh 可以卸载掉 换回 bash 或者装个 my-zshell 试试 还是在虚拟机里泡 docker 比较好
    SilenceLL
        9
    SilenceLL  
       2022-04-08 15:27:57 +08:00
    docker desktop 不能商用。。
    liubaicai
        10
    liubaicai  
       2022-04-08 16:06:57 +08:00
    @SilenceLL 商用更不会用 wsl 辣
    thedrwu
        11
    thedrwu  
       2022-04-08 16:57:03 +08:00 via Android
    1. zsh 和 posix shell 的 glob 失败规则不太一样
    2. 像是 CRLF 的锅

    听人吹 zsh 和 fish 就如听人强调自己用 Arch 一样🤨
    wdssmq
        12
    wdssmq  
    OP
       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
        13
    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
        14
    aloxaf  
       2022-04-08 17:46:06 +08:00   ❤️ 2
    哎,所以说要看一手资料

    你引用的那篇博客引用的英文博客原文,明明强调了「 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
        15
    wdssmq  
    OP
       2022-04-08 18:03:51 +08:00
    @aloxaf #14 尴尬,,原来如此。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2632 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:15 · PVG 19:15 · LAX 03:15 · JFK 06:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.