运行osrm-frontend Docker失败:Micromatch存在语法错误
解决osrm-frontend Docker运行时Micromatch语法错误问题
问题根源
你遇到的SyntaxError: Unexpected token ...错误,是因为容器内使用的Node.js版本过低,不支持对象扩展运算符(...)语法。该语法在Node.js 8.0及以上版本才被原生支持,当前容器内的Node.js版本未达到要求。
解决方案
方案1:修改Dockerfile指定高版本Node.js镜像
- 进入osrm-frontend代码目录(若未克隆,先执行
git clone https://github.com/Project-OSRM/osrm-frontend.git) - 打开
Dockerfile文件,将开头的基础镜像从旧版本(比如node:alpine)替换为高版本的Node.js镜像,例如:
(也可以选择FROM node:14-alpinenode:16-alpine或其他版本,可查看项目package.json里的engines字段确认官方要求的最低Node.js版本) - 重新构建Docker镜像:
docker build -t osrm-frontend . - 重新运行容器:
docker run -p 9966:9966 osrm-frontend
方案2:使用预构建的兼容镜像
如果不想自行构建,可以查找社区提供的基于高版本Node.js的osrm-frontend镜像,直接拉取并运行,避免版本不兼容问题。
内容的提问来源于stack exchange,提问作者AlirezaN
相关产品推荐
相关产品推荐

