You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS下使用pnpm创建Angular项目时路径异常:项目生成在用户主目录而非当前工作目录

macOS下使用pnpm创建Angular项目时路径异常:项目生成在用户主目录而非当前工作目录

我之前也碰到过一模一样的问题!当时在macOS上折腾了好一会儿才找到根源,给你分享几个亲测有效的解决方案:

  • 优先用pnpm exec调用Angular CLI
    这是我最快解决问题的方法,直接用pnpm的exec命令强制使用pnpm生态下的Angular CLI,彻底避开全局命令的路径冲突:

    pnpm exec ng new <myprojectname>
    

    原理是pnpm exec会优先查找当前pnpm环境管理的包,不会和npm全局安装的Angular CLI混淆,路径解析也会严格遵循当前工作目录。

  • 重新用pnpm全局安装Angular CLI
    如果你之前是用npm install -g @angular/cli装的全局Angular CLI,pnpm调用时可能会因为包管理的隔离机制出现路径解析异常。可以先卸载npm的全局包,再用pnpm重新安装:

    npm uninstall -g @angular/cli
    pnpm add -g @angular/cli
    

    安装完记得重启终端,让新的全局命令路径生效,再试pnpm ng new <myprojectname>创建项目。

  • 检查并调整PATH环境变量顺序
    有时候macOS的PATH里npm的全局bin目录优先级比pnpm的高,导致你调用的ng其实还是npm安装的版本,和pnpm配合就会出问题。先查看当前PATH:

    echo $PATH
    

    找到pnpm的全局bin路径(通常是~/.local/share/pnpm),如果它在npm的路径(比如/usr/local/bin)后面,就需要在~/.zshrc(用zsh的话)或者~/.bashrc(用bash的话)里添加:

    export PATH="$HOME/.local/share/pnpm:$PATH"
    

    保存后执行source ~/.zshrc或者source ~/.bashrc让配置生效,再重新尝试创建项目。

  • 本地安装Angular CLI再创建项目
    如果你不想用全局包,也可以在当前目录先初始化pnpm项目,再本地装Angular CLI后创建:

    # 初始化pnpm项目
    pnpm init -y
    # 本地安装Angular CLI作为开发依赖
    pnpm add -D @angular/cli
    # 本地调用ng创建项目,指定当前目录
    pnpm exec ng new <myprojectname> --directory ./
    

之所以用npm时正常,是因为npm的全局包路径解析和当前工作目录的关联逻辑和pnpm不同,pnpm的包隔离机制会严格区分全局和本地包的环境,所以当全局命令来源不统一时就会出现路径异常。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 14:29:35