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

46

我试图将CI环境中的Node版本从Node 6升级到Node 8。我也更新了full-icu版本。

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

但仍然遇到此错误

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

你有任何想法如何解决这个问题吗?

3个回答

71

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

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

npm rebuild

修复了该问题。


1
对于其他人,这对我有用:yarn add full-icu 然后 node NODE_ICU_DATA=node_modules/full-icu ... - Alex
3
您也可以尝试已经经过验证的方法,即删除“node_modules”并重新安装。 - Matt Fletcher
yarn add --force - Davi Lima

30

如果您已经安装了full-icu,但在之间升级过 Node:

npm rebuild 可以解决这个问题。


8

如果你想在 Docker 中使用 Node.js 和 full-icu,你可以使用以下的 Dockerfile 示例:

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" ]

对我来说这很有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接