为何相同配置下本地Hugo编译报PostCSS错误,另一台PC却正常?
几年前在原Win10、现已升级至Win11的PC上安装了chocolatey、nodejs和Hugo,定制tella主题后运行正常。几周前更新choco、Hugo、nodejs等包后,执行hugo serve或hugo build时出现错误:
Error: error building site: POSTCSS: failed to transform "/css/style.css" (text/css):
即使空白主题示例站点也报相同错误,但在另一台配置相同的Win10 PC(Hugo 0.140,Node v22.13)上可正常运行。已尝试以下操作:
- 删除node-modules、package-lock.json并重新执行
npm install - 通过choco将Hugo降级至0.79、0.81等版本
- 彻底卸载choco、node、npm、Hugo及所有包
- 以本地用户身份在AppData文件夹重装所有软件并添加环境变量
- 以管理员身份通过choco脚本和node安装程序重装所有软件
- 执行
npm cache clear - 安装hugo-extended
- 全局安装tailwind、postcss、postcss-cli、autoprefixer
询问是否是Win11的问题,是否有遗漏的缓存或配置需清理以实现干净环境。
Win11的权限机制、路径处理或环境变量隔离确实可能是问题根源,以下是遗漏的排查和清理步骤:
校验环境变量优先级
用where node和where hugo命令查看终端实际调用的软件版本,确保本地用户的安装路径(如%USERPROFILE%\AppData\Roaming\npm)在系统路径之前,避免全局与本地版本冲突。清理Hugo全局缓存
Win11下Hugo的缓存目录为%LOCALAPPDATA%\hugo\Cache,直接删除整个Cache文件夹后重新执行构建命令。刷新VS Code终端环境
VS Code可能继承旧的环境变量,重启VS Code后在终端执行refreshenv(PowerShell)或set PATH=%PATH%(CMD)刷新环境,再尝试构建。确保PostCSS本地依赖正常
项目根目录执行npx postcss --version验证本地依赖可用性,若报错则重新安装本地依赖:npm install postcss postcss-cli autoprefixer --save-dev检查Win11长路径支持
将项目移至短路径目录(如C:\sites\myblog),避免因长路径导致的文件访问异常。调整PowerShell执行策略
以管理员身份运行PowerShell,执行Get-ExecutionPolicy,若为Restricted则修改为RemoteSigned:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser清理Node深层缓存
删除%LOCALAPPDATA%\npm-cache文件夹,或执行npm cache clean --force彻底清理Node缓存。
内容的提问来源于stack exchange,提问作者DerHelge

