安装“sse4_crc32”的NPM错误

时间:2015-08-02 23:20:57

标签: node.js npm

我最初将此错误视为不同软件包的依赖项,但是当我自己尝试它时它也会失败。因为这是我第一次尝试安装node.js软件包,我确定我错过了什么,但是什么?

$ npm install --save sse4_crc32
\
> sse4_crc32@3.3.0 install /home/agam/node_modules/sse4_crc32
> node-gyp rebuild

make: Entering directory '/home/agam/node_modules/sse4_crc32/build'
  CXX(target) Release/obj.target/sse4_crc32/src/sse4_crc32.o
In file included from ../src/sse4_crc32.cpp:18:0:
../node_modules/nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local)’:
../node_modules/nan/nan.h:1178:27: error: ‘REPLACE_INVALID_UTF8’ is not a member of ‘v8::String’
                           v8::String::REPLACE_INVALID_UTF8;
                           ^
sse4_crc32.target.mk:87: recipe for target 'Release/obj.target/sse4_crc32/src/sse4_crc32.o' failed
make: *** [Release/obj.target/sse4_crc32/src/sse4_crc32.o] Error 1
make: Leaving directory '/home/agam/node_modules/sse4_crc32/build'

2 个答案:

答案 0 :(得分:3)

我的猜测是你正在使用节点v0.11.12或早期的v0.11版本,它不会有v8::String::REPLACE_INVALID_UTF8(从v1.11.13开始,当v8从3.22.x升级到3.24.x时可用)。 node v0.11.x版本被认为是不稳定的,您应该升级到至少v0.12。在那之后,错误应该消失。

错误的更多技术原因是nan围绕使用v8::String::REPLACE_INVALID_UTF8的代码执行a check if the node ABI version is post-v0.10,因此它假定您使用的是v0.12或更新版本,其中常数可用。

答案 1 :(得分:3)

今天遇到同样的问题。

我在节点0.10.29上,应该可以工作。 升级到节点0.10.38,但没有解决问题。

我在debian(jessy)上运行并安装了npm,并将旧版本的node-gyp作为依赖项。 0.2.0我相信npm 1.4.x。

通过npm install -g安装新版本的node-gyp解决了这个问题。 (在一些符号链接更改为指向新节点-gyp之后)。