V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hahade
V2EX  ›  Windows

在已安装 WSL 的 Windows 11 的电脑上运行 npm 命令报 not found 的错误

  •  
  •   hahade · 2024-05-16 16:36:48 +08:00 · 1568 次点击
    这是一个创建于 396 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经过

    昨天领导让我看一个前端项目,项目直接在我的 Windows 11 电脑上面执行此命令即可打开:npm run start。今天早上不知道咋了,我想看下 Linux ,然后一顿折腾后在电脑上安装了 WSL ,WSL 的版本信息如下:

    WSL 版本:2.1.5.0
    内核版本:5.15.146.1-2
    WSLg 版本:1.0.60
    MSRDC 版本:1.2.5105
    Direct3D 版本:1.611.1-81528511
    DXCore 版本:10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
    Windows 版本:10.0.22631.3593
    

    问题

    现在快下班了,想再看下领导让我看的项目,结果在我的 Windows 电脑上运行 npm run start 直接报错了,现在有点慌了,不知道是怎么回事,难道要卸载 WSL ?

    11: exec: node: not found
    
    18 条回复    2024-05-17 12:52:11 +08:00
    yggd
        1
    yggd  
       2024-05-16 17:23:59 +08:00
    在 WSL 里装完 Linux 装 Node 和 NPM 了吗?
    hahade
        2
    hahade  
    OP
       2024-05-16 17:25:28 +08:00
    @yggd 没有,WSL 只是我安装得好玩,想了解一下。实际我的项目都在 Windows 11 上运行。
    yggd
        3
    yggd  
       2024-05-16 17:29:55 +08:00
    没装哪来的 npm
    hahade
        4
    hahade  
    OP
       2024-05-16 17:31:33 +08:00
    @yggd 我的项目在本机,不在 WSL 中,我也不需要 WSL 来跑项目。猜测是 WSL 影响了我本机的 npm 脚本执行。
    yggd
        5
    yggd  
       2024-05-16 17:32:19 +08:00
    gucheen
        6
    gucheen  
       2024-05-16 17:32:41 +08:00
    检查一下环境变量,最不济就重装一下 node 或者 npm 呗
    yggd
        7
    yggd  
       2024-05-16 17:33:07 +08:00
    @hahade Sorry ,理解错了
    gucheen
        8
    gucheen  
       2024-05-16 17:33:13 +08:00
    @hahade 大概率是你现在打开终端之后,默认用了 WSL 的环境
    gucheen
        9
    gucheen  
       2024-05-16 17:33:36 +08:00
    你可以试着手动切换到 windows 的 cmd
    hahade
        10
    hahade  
    OP
       2024-05-16 17:37:24 +08:00
    @gucheen 运行 npm run start 时的终端就是 PowerShell ,我个人猜测可能是某个库在调用 exec 时走到了 WSL 环境。
    cutecore
        11
    cutecore  
       2024-05-16 17:41:40 +08:00
    我也遇到了,之后不在用 wsl2 还是继续 vmware player 了
    hahade
        12
    hahade  
    OP
       2024-05-16 17:48:13 +08:00
    @cutecore 看来,我还是把 WSL 卸载算了,装个 VM 简单用用,就是有点耗电脑性能。
    ysc3839
        13
    ysc3839  
       2024-05-16 19:03:23 +08:00 via Android
    执行
    which npm
    或者
    where npm
    试试?
    hahade
        14
    hahade  
    OP
       2024-05-17 07:25:29 +08:00
    折腾了一圈,算了,还是用 Windows 好。
    ZnductR0MjHvjRQ3
        15
    ZnductR0MjHvjRQ3  
       2024-05-17 10:31:53 +08:00
    小问题,仔细检查本地 node 环境,如果没了就再装一遍,如果还在就检查环境变量,你以为 npm 是调用什么,是从你环境变量里面添加的目录找到一个叫做 npm.exe/npm.sp1/npm.bat 来执行的 node 同理
    mmdsun
        16
    mmdsun  
       2024-05-17 11:45:07 +08:00
    要在 linux 中安装 npm node 环境, 你用的是 windows 的 npm ,没用到 WSL 2 里的。

    user@LAPTOP-D0V5MGO3:~$ whereis npm
    npm: /mnt/c/Users/user/AppData/Roaming/nvm/v18.17.0/npm /mnt/c/Users/user/AppData/Roaming/nvm/v18.17.0/npm.cmd
    Dragonphy
        17
    Dragonphy  
       2024-05-17 12:20:19 +08:00
    在 Windows 中执行 `winget install -e --id OpenJS.NodeJS`
    hahade
        18
    hahade  
    OP
       2024-05-17 12:52:11 +08:00 via Android
    感谢大家回复我,现在统一回复一下:我的项目都在 Windows 上,WSL 只是好奇才安装的。我的项目运行不需要 WSL 。此问题我卸载 WSL 后就解决了,大概率是因为安装 WSL 后导致 CMD 在执行中有部分命令行的上下文环境跑到 WSL 中去了。可能是微软想让 CMD 与 WSL 共享命令执行环境所致。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1140 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:03 · PVG 07:03 · LAX 16:03 · JFK 19:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.