首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Node.js
Express
PPA for Ubuntu
ppa:chris-lea/node.js
V2EX  ›  Node.js

安装 nodejs,运行 npm 命令有用,但是提示“不是内部或外部命令”

  •  
  •   haikea · 10 天前 · 1880 次点击
    小弟最近想学习下前端 vue,就先安装下环境,很奇怪公司的电脑按流程走下来都没问题,网上的 demo 也运行成功能在本地访问。
    但是在自己的电脑上安装完 nodejs 后,npm 命令一直有问题,比如运行 npm -v 会出现版本信息,但是会先提示“不是内部或外部命令”,一直搞不明白是哪里的问题。我换 nodejs 版本从稳定帮换成最新版安装,还是会出现一样的问题,也不是 path 配置的问题。
    24 回复  |  直到 2019-05-16 09:50:31 +08:00
        1
    fsdgfd   10 天前 via Android   ♥ 1
    装完之后重新打开命令行试试,还不行的话重启电脑试试?
        2
    haikea   10 天前
    C:\windows\system32>npm -v
    'CALL "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs\\node_modules
    \npm\bin\npm-cli.js" prefix -g' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    6.9.0
        3
    haikea   10 天前
    C:\windows\system32>node -v
    v12.2.0

    C:\windows\system32>npm -v
    'CALL "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs\\node_modules
    \npm\bin\npm-cli.js" prefix -g' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    6.9.0
        4
    haikea   10 天前
    @fsdgfd 试过的,效果就像三楼我贴的那样
        5
    agdhole   9 天前 via Android
    卸载了装 10.x lts 的试试
        6
    hoyixi   9 天前
    Win 下装完 node,一般也会自动给你装个 node 专用的命令行,打开那个命令行试试
        7
    skiy   9 天前 via Android
    yarn 满足你
        8
    haikea   9 天前
    @agdhole 谢谢老铁,10.x 和 12.x 我都试过 o(╥﹏╥)o
        9
    agdhole   9 天前
    @haikea #8 装完之后要重启 /注销,因为 path 要 reload 才能生效
        10
    lovedebug   9 天前 via Android
    这种问题你应该谷歌错误,环境问题在这里问基本浪费时间
        11
    wlor   9 天前
    环境变量没配置对
        12
    rbe   9 天前
    推荐使用 nvm 或 nvs 管理 node 版本
        13
    shuigao   9 天前
    菜鸟教程那个 vue 对基础很好的 我前段时间 就是参考那个教程安装的
        14
    way2create   9 天前
    按理就是环境变量的问题 配了多个有个错的?
        15
    boris1993   9 天前 via Android
    检查 PATH

    @agdhole 只需要关了 cmd 重开就可以
        16
    iromfeed   9 天前 via Android
    ٩۶多谷歌……
        17
    Aliennnnnn   9 天前
    环境变量的问题,去网上搜一下
        18
    no1xsyzy   9 天前   ♥ 1
    应该不是环境变量问题,应该是这行报的错:
    https://github.com/npm/cli/blob/v6.9.0/bin/npm.cmd#L12
    甚至还没进 node 就报错了
    几个环境变量都正常展开了

    理论上来说 for in ('***') 应该被当作 cmd 命令解析,比如这样:

    > for /f "delims=" %f in ('callc cat D:\test\warnings.txt') do @echo %f
    'callc' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。

    上面特地将 call 错拼成 callc,发现错误会提示出现在 callc 上,而不是整句上。
    所以应该检查一下 npm.cmd 内容是否有问题。
        19
    no1xsyzy   9 天前   ♥ 1
    似乎是环境变量 ComSpec 被修改了?
    又是奇奇怪怪的副作用……
        20
    ultimate   9 天前
    实在不行就换 Linux 或 mac 吧
        21
    haikea   8 天前
    @no1xsyzy 谢谢老铁,就是 ComSpec 的问题,里面加了个 mevan 的路径,删掉就好了,你是怎么看出来的啊
        22
    haikea   8 天前
    @no1xsyzy 谢谢老铁,问题解决了,原来是 ComSpec 的问题,不过和你说的这个应该也有关系,我今天来研究下这个文件
        23
    no1xsyzy   8 天前
    @haikea 是搜索出来的,我在 #18 只是隐约感觉到是 shell lexer 被篡改了…… 之后从头搜索一下你的问题就到了 StackOverflow,被掺的东西似乎也是各种各样。
    不过真没想到 Windows 下 Shell 是按照环境变量来调用子 Shell 的…… 词法会被其他的地方改变简直是蠢。
        24
    haikea   8 天前
    @no1xsyzy 原来是这样的,看来我要学习的还很多
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1494 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 17:14 · PVG 01:14 · LAX 10:14 · JFK 13:14
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1