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

使用npm全局安装less后,终端执行lessc编译文件报错求助

解决npm安装Less后执行lessc报错的问题

哦,这个问题我碰到过好多次了——你明明用npm全局装了Node.js版本的Less,但执行lessc时却触发了Ruby gem的错误,核心原因是系统里同时存在两个lessc命令:Ruby gem版和Node.js版,而且Ruby版的优先级更高,导致你执行时调用错了程序。

下面给你几个可行的解决办法:

方法1:确认并调用正确的lessc路径

先找出系统里所有lessc的位置:

which -a lessc

你会看到类似这样的输出:

/usr/bin/lessc  # Ruby gem版的路径
/usr/local/bin/lessc  # npm全局安装的Node.js版路径

直接用Node.js版的完整路径执行编译命令就行:

/usr/local/bin/lessc '/home/annguyen/Desktop/test.less' >'/home/annguyen/Desktop/2.css'

方法2:调整PATH环境变量,让npm的命令优先

把npm全局bin目录放到PATH的最前面,这样系统会先找Node.js版的lessc:

  1. 先查npm的全局prefix路径:
npm config get prefix

通常输出是/usr/local或者~/.npm-global,对应的bin目录就是[prefix]/bin。
2. 临时生效(当前终端有效):

export PATH="[你的prefix路径]/bin:$PATH"

比如如果prefix是/usr/local,就执行:

export PATH="/usr/local/bin:$PATH"
  1. 永久生效(所有终端都有效):
    编辑你的shell配置文件(比如~/.bashrc、~/.zshrc或者~/.profile),把上面的export命令加进去,然后执行:
source ~/.bashrc  # 对应你编辑的配置文件

之后再执行lessc命令就会调用Node.js版的了。

方法3:卸载Ruby版的Less(如果不需要的话)

如果你完全用不到Ruby版的Less,直接卸载它就行:

gem uninstall less

卸载后系统里就只剩npm安装的lessc,执行命令就不会出错了。

内容的提问来源于stack exchange,提问作者Andy Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:26:33