节点:无法初始化 ICU(检查 NODE_ICU_DATA 或 --icu-data-dir 参数)

node: could not initialize ICU (check NODE_ICU_DATA or --icu-data-dir parameters)

我试图将 CI 环境中的节点版本从节点 6 升级到节点 8。我也更新了完整的 icu 版本。

$NODE_ICU_DATA 设置为 /usr/lib/node_modules/full-icu

但仍然出现此错误

node: could not initialize ICU (check NODE_ICU_DATA or --icu-data-dir parameters)

知道如何解决这个问题吗?

您需要 运行 npm install 包括 full-icu 包。这是 full-icu 的安装后步骤,它为当前正在执行的节点下载适当的位。请注意,多个文件可能会出现在 full-icu 目录中,没关系。

如果您已经安装了 full-icu,但在此期间升级了 Node.js:

npm rebuild

修复了问题。

如果您已经安装了 full-icu,但在这期间升级了节点:

npm rebuild 确实解决了这个问题。

如果您想将 Node.js 与 full-icu 和 Docker 一起使用,您可以使用 Docker 文件的示例:

FROM node:lts-alpine

WORKDIR /icu
RUN npm init -y && npm install full-icu
ENV NODE_ICU_DATA=/icu/node_modules/full-icu

WORKDIR /project
COPY package*.json ./
RUN npm install
COPY . .

EXPOSE 8080
CMD [ "node", "server.js" ]

它适合我。