节点:无法初始化 ICU(检查 NODE_ICU_DATA 或 --icu-data-dir 参数)
Posted
技术标签:
【中文标题】节点:无法初始化 ICU(检查 NODE_ICU_DATA 或 --icu-data-dir 参数)【英文标题】:node: could not initialize ICU (check NODE_ICU_DATA or --icu-data-dir parameters) 【发布时间】:2018-10-22 02:53:58 【问题描述】:我正在尝试将我们 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)
任何想法,如何解决这个问题?
【问题讨论】:
【参考方案1】:您需要运行npm install
,包括full-icu
包。这是full-icu
的安装后步骤,它为当前执行的节点下载适当的位。注意full-icu
目录下可能会出现多个文件,没关系。
如果您已经安装了full-icu
,但在这两者之间升级了 Node.js:
npm rebuild
解决了这个问题。
【讨论】:
对其他人来说,这对我有用:yarn add full-icu
然后node NODE_ICU_DATA=node_modules/full-icu ...
你也可以只用核爆node_modules
并重新安装这种久经考验的方法
纱线添加--force【参考方案2】:
如果您已经安装了full-icu
,但在两者之间升级了节点:
npm rebuild
确实解决了这个问题。
【讨论】:
【参考方案3】:如果你想使用 Node.js 和 full-icu 和 Docker,你可以使用 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" ]
它对我有用。
【讨论】:
以上是关于节点:无法初始化 ICU(检查 NODE_ICU_DATA 或 --icu-data-dir 参数)的主要内容,如果未能解决你的问题,请参考以下文章
dyld:库未加载:/usr/local/opt/icu4c/lib/libicui18n.62.dylib 在 Mac 上使用 brew 安装节点后运行 php 错误
无法让 ICU4J 与 Saxon HE 10.3 一起使用
Centos install ICU, INTL for php
无法在 Linux 上使用 pyinstaller 和 cefpython 创建可执行文件(ICU 数据的文件描述符无效)