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

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

  •  
  •   wdssmq ·
    wdssmq · 181 天前 · 2362 次点击
    这是一个创建于 181 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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  
       181 天前   ❤️ 1
    bash\r 这个一看就是文件的换行符使用了 CRLF ,其中的 CR 被当成了行内的字符作为参数传递了
    Vegetable
        2
    Vegetable  
       181 天前
    请直接使用 docker desktop for windows with wsl2 backend
    ScepterZ
        3
    ScepterZ  
       181 天前
    win 现在也都支持\n 换行了,建议统一都用\n ,git 的也配置一下不要给转换了

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

    听人吹 zsh 和 fish 就如听人强调自己用 Arch 一样🤨
    wdssmq
        12
    wdssmq  
    OP
       181 天前
    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  
       181 天前
    我记得我好像遇到过类似的情况。给个思路
    你看下在 zsh 里 echo $PATH 是不是混了 Windows 的路径进去了,调用位置出错了。

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

    [interop]
    appendWindowsPath = false

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

    或者用 nvm 哈哈
    aloxaf
        14
    aloxaf  
       181 天前   ❤️ 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
       181 天前
    @aloxaf #14 尴尬,,原来如此。。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   968 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 19:51 · PVG 03:51 · LAX 12:51 · JFK 15:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.