Symfony执行assetic:dump命令时遭遇Uglifycss错误
解决Symfony中
assetic:dump --env=prod执行时的uglifycss语法错误 这个SyntaxError: Unexpected token {的问题根源很明确:你的Node.js版本过低,不支持uglifycss最新版本里用到的ES6解构赋值语法。uglifycss后续版本改用了ES6特性,但老版本Node(比如v6.x及以下)无法解析这类语法,所以抛出了错误。
下面给你两种可行的解决方案,按需选择:
方案一:升级Node.js版本
- 先检查当前Node版本,确认是否是低版本导致的问题:
如果输出是v6.x或更低,那肯定是版本不兼容的锅。node -v - 推荐用Node版本管理器(nvm)来安全升级,避免影响系统自带的Node环境:
- 先卸载现有全局安装的uglifycss:
npm uninstall -g uglifycss - 安装nvm(你可以搜索nvm的官方安装步骤),之后安装一个支持ES6的LTS版本,比如v18:
nvm install 18 nvm use 18 - 重新全局安装uglifycss:
npm install -g uglifycss
- 先卸载现有全局安装的uglifycss:
- 再次执行Symfony的assetic命令:
php app/console assetic:dump --env=prod
方案二:安装兼容旧Node的uglifycss旧版本
如果你暂时不想升级Node,可以安装uglifycss的v0.0.29版本——这个版本没有使用ES6语法,能适配老Node:
- 先卸载当前的uglifycss:
npm uninstall -g uglifycss - 指定安装旧版本:
npm install -g uglifycss@0.0.29 - 重新运行assetic dump命令即可正常执行。
另外补充下:从错误信息看你的uglifycss路径配置是正确的,所以不用纠结路径问题,核心就是版本兼容的事儿。
内容的提问来源于stack exchange,提问作者Sermanes
相关产品推荐
相关产品推荐

