node.js - libxmljs "could not locate the bindings file"错误(Windows)

标签 node.js npm libxml-js

我正在使用一个名为 gulp-xml-editor 的模块它使用 libxmljs 。在 Mac 上一切正常,但当我在 Windows 机器上尝试时,我得到:“无法找到绑定(bind)文件”,指的是 libxmljs 的绑定(bind)依赖项:

C:\HiddenPath\App Source>gulp clean
C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\node_modules\bindings\bindings.js:91
  throw err
        ^
Error: Could not locate the bindings file. Tried:
  C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\build\xmljs.node
  C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\build\Debug\xmljs.node
  C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\build\Release\xmljs.node
  C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\out\Debug\xmljs.node
  C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\Debug\xmljs.node
  C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\out\Release\xmljs.node
  C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\Release\xmljs.node
  C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\build\default\xmljs.node
  C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\compiled\0.12.7\win32\ia32\xmljs.node
    at bindings (C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\node_modules\bindings\bindings.js:88
:9)
    at Object.<anonymous> (C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\lib\bindings.js:1:99)
    at Module._compile (module.js:460:26)
    at Module._extensions..js (module.js:478:10)
    at Object.require.extensions.(anonymous function) [as .js] (C:\Users\HiddenPath\App Source\node_modules\babel\node_modules\babel-core\lib\api\register\node.js:214:7)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (C:\HiddenPath\App Source\node_modules\gulp-xml-editor\node_modules\libxmljs\index.js:4:16)

设置为:

  • Windows 8.1 专业版
  • Visual Studio 专业版 2013
  • Node v0.12.7
  • NPM v2.11.3
  • gulp-xml-editor v2.2.1
  • libxmljs v0.14.2
  • Python v2.7

libxmljs\build\中唯一的文件是 config.gypi (这看起来很奇怪,因为我的 Mac 上有更多文件)。

早些时候我遇到了不同的错误。首先,libxmljs 根本找不到“绑定(bind)”模块 - 可能是因为它的“npm install”失败了。尝试npm install它直接给出了 ETIMEOUTnode-gyp rebuild 。重新安装node-gyp和/或安装Python v2.7(而不是v3)修复了这个问题。现在npm install除了一些警告之外,似乎工作正常:

C:\HiddenPath\App Source>npm install
npm WARN package.json HiddenAppName@0.2.0 No license field.

> libxmljs@0.14.2 install C:\HiddenPath\App Source\node_modules\libxmljs
> node-gyp rebuild


C:\HiddenPath\App Source\node_modules\libxmljs>if
 not defined npm_config_node_gyp (node "C:\Program Files (x86)\nodejs\node_modul
es\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )
 else (node  rebuild )
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
  buf.c
  catalog.c
  chvalid.c
  dict.c
..\..\..\vendor\libxml\dict.c(173): warning C4244: 'function' : conversion from
 'time_t' to 'unsigned int', possible loss of data [C:\HiddenPath\App Source\node_modules\libxmljs\build\vendor\libxml\libxml.v
cxproj]
..\..\..\vendor\libxml\catalog.c(977): warning C4013: 'open' undefined; assumin
g extern returning int [C:\HiddenPath\App Source
\node_modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
..\..\..\vendor\libxml\catalog.c(998): warning C4013: 'read' undefined; assumin
g extern returning int [C:\HiddenPath\App Source
\node_modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
..\..\..\vendor\libxml\catalog.c(999): warning C4013: 'close' undefined; assumi
ng extern returning int [C:\HiddenPath\App Sourc
e\node_modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
..\..\..\vendor\libxml\dict.c(237): warning C4018: '>' : signed/unsigned mismat
ch [C:\HiddenPath\App Source\node_modules\libxml
js\build\vendor\libxml\libxml.vcxproj]
..\..\..\vendor\libxml\dict.c(305): warning C4018: '>' : signed/unsigned mismat
ch [C:\HiddenPath\App Source\node_modules\libxml
js\build\vendor\libxml\libxml.vcxproj]
  encoding.c
..\..\..\vendor\libxml\buf.c(674): warning C4028: formal parameter 1 different
from declaration [C:\HiddenPath\App Source\node_
modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
  entities.c
  error.c
  globals.c
  hash.c
  HTMLparser.c
  HTMLtree.c
  legacy.c
  list.c
  parser.c
  parserInternals.c
  pattern.c
  relaxng.c
  SAX2.c
  SAX.c
  tree.c
  threads.c
  uri.c
  valid.c
  xinclude.c
  xlink.c
  xmlIO.c
  xmlmemory.c
  xmlmodule.c
  xmlreader.c
  xmlregexp.c
  xmlsave.c
..\..\..\vendor\libxml\xmlIO.c(668): warning C4133: 'function' : incompatible t
ypes - from 'stat *' to '_stat64i32 *' [C:\Users\Pebble Code\Documents\ByBox Er
skine\App Source\node_modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
..\..\..\vendor\libxml\xmlIO.c(736): warning C4996: 'GetVersionExA': was declar
ed deprecated [C:\HiddenPath\App Source\node_mod
ules\libxmljs\build\vendor\libxml\libxml.vcxproj]
          C:\Program Files (x86)\Windows Kits\8.1\Include\um\sysinfoapi.h(433)
  : see declaration of 'GetVersionExA'
  xmlschemas.c
..\..\..\vendor\libxml\xmlIO.c(822): warning C4013: 'read' undefined; assuming
extern returning int [C:\HiddenPath\App Source\n
ode_modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
..\..\..\vendor\libxml\xmlIO.c(843): warning C4013: 'write' undefined; assuming
 extern returning int [C:\HiddenPath\App Source\
node_modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
  xmlschemastypes.c

..\..\..\vendor\libxml\xmlIO.c(861): warning C4013: 'close' undefined; assuming
 extern returning int [C:\HiddenPath\App Source\
node_modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
..\..\..\vendor\libxml\xmlIO.c(3811): warning C4013: 'getcwd' undefined; assumi
ng extern returning int [C:\HiddenPath\App Sourc
e\node_modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
..\..\..\vendor\libxml\xmlIO.c(3811): warning C4047: '!=' : 'int' differs in le
vels of indirection from 'void *' [C:\HiddenPath\App Source\node_modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
  xmlstring.c
  xmlunicode.c
  xmlwriter.c
  xpath.c
  xpointer.c
c:\users\hiddenpath\app source\node_modules\libxmljs\v
endor\libxml\timsort.h(71): warning C4028: formal parameter 1 different from de
claration (..\..\..\vendor\libxml\xpath.c) [C:\HiddenPath\App Source\node_modules\libxmljs\build\vendor\libxml\libxml.vcxproj]
c:\hiddenpath\app source\node_modules\libxmljs\v
endor\libxml\timsort.h(74): warning C4244: 'initializing' : conversion from 'co
nst uint64_t' to 'const int', possible loss of data (..\..\..\vendor\libxml\xpa
th.c) [C:\HiddenPath\App Source\node_modules\lib
xmljs\build\vendor\libxml\libxml.vcxproj]
c:\hiddenpath\app source\node_modules\libxmljs\v
endor\libxml\timsort.h(185): warning C4244: 'function' : conversion from 'int64
_t' to 'const size_t', possible loss of data (..\..\..\vendor\libxml\xpath.c) [
C:\HiddenPath\App Source\node_modules\libxmljs\b
uild\vendor\libxml\libxml.vcxproj]
c:\hiddenpath\app source\node_modules\libxmljs\v
endor\libxml\timsort.h(334): warning C4244: 'function' : conversion from 'const
 int64_t' to 'const size_t', possible loss of data (..\..\..\vendor\libxml\xpat
h.c) [C:\HiddenPath\App Source\node_modules\libx
mljs\build\vendor\libxml\libxml.vcxproj]
c:\hiddenpath\app source\node_modules\libxmljs\v
endor\libxml\timsort.h(340): warning C4244: 'function' : conversion from 'const
 int64_t' to 'size_t', possible loss of data (..\..\..\vendor\libxml\xpath.c) [
C:\HiddenPath\App Source\node_modules\libxmljs\b
uild\vendor\libxml\libxml.vcxproj]
c:\hiddenpath\app source\node_modules\libxmljs\v
endor\libxml\timsort.h(364): warning C4244: 'function' : conversion from 'const
 int64_t' to 'size_t', possible loss of data (..\..\..\vendor\libxml\xpath.c) [
C:\HiddenPath\App Source\node_modules\libxmljs\b
uild\vendor\libxml\libxml.vcxproj]
c:\hiddenpath\app source\node_modules\libxmljs\v
endor\libxml\timsort.h(469): warning C4244: 'function' : conversion from 'int64
_t' to 'const size_t', possible loss of data (..\..\..\vendor\libxml\xpath.c) [
C:\HiddenPath\App Source\node_modules\libxmljs\b
uild\vendor\libxml\libxml.vcxproj]
c:\hiddenpath\app source\node_modules\libxmljs\v
endor\libxml\timsort.h(470): warning C4244: 'function' : conversion from 'int64
_t' to 'const size_t', possible loss of data (..\..\..\vendor\libxml\xpath.c) [
C:\HiddenPath\App Source\node_modules\libxmljs\b
uild\vendor\libxml\libxml.vcxproj]
c:\hiddenpath\app source\node_modules\libxmljs\v
endor\libxml\timsort.h(471): warning C4244: 'function' : conversion from 'int64
_t' to 'const size_t', possible loss of data (..\..\..\vendor\libxml\xpath.c) [
C:\HiddenPath\App Source\node_modules\libxmljs\b
uild\vendor\libxml\libxml.vcxproj]
c:\hiddenpath\app source\node_modules\libxmljs\v
endor\libxml\timsort.h(480): warning C4244: 'function' : conversion from 'int64
_t' to 'const size_t', possible loss of data (..\..\..\vendor\libxml\xpath.c) [
C:\HiddenPath\App Source\node_modules\libxmljs\b
uild\vendor\libxml\libxml.vcxproj]
  libxml.vcxproj -> C:\HiddenPath\App Source\nod
  e_modules\libxmljs\build\Release\\libxml.lib
  libxmljs.cc
  xml_attribute.cc
  xml_document.cc
  xml_element.cc
  xml_comment.cc
  xml_namespace.cc
  xml_node.cc
  xml_sax_parser.cc
  xml_syntax_error.cc
  xml_xpath_context.cc
     Creating library C:\HiddenPath\App Source\n
  ode_modules\libxmljs\build\Release\xmljs.lib and object C:\HiddenPath\App Source\node_modules\libxmljs\build\Release\xmljs.
  exp
  Generating code
  Finished generating code
  xmljs.vcxproj -> C:\HiddenPath\App Source\node
  _modules\libxmljs\build\Release\\xmljs.node
npm WARN prefer global node-gyp@2.0.2 should be installed with -g
npm WARN unmet dependency C:\HiddenPath\App Sourc
e\node_modules\jest-cli\node_modules\istanbul\node_modules\handlebars\node_modul
es\uglify-js requires async@'~0.2.6' but will load
npm WARN unmet dependency C:\HiddenPath\App Sourc
e\node_modules\jest-cli\node_modules\istanbul\node_modules\async,
npm WARN unmet dependency which is version 1.4.2
npm WARN unmet dependency C:\HiddenPath\App Sourc
e\node_modules\jest-cli\node_modules\istanbul\node_modules\handlebars\node_modul
es\uglify-js requires optimist@'~0.3.5' but will load
npm WARN unmet dependency C:\HiddenPath\App Sourc
e\node_modules\jest-cli\node_modules\optimist,
npm WARN unmet dependency which is version 0.6.1

C:\HiddenPath\App Source>

最佳答案

原来我只需要清除 node_modules 并执行干净的 npm install!

(我以为我已经这样做了,但这是因为我不习惯 Windows,并且没有意识到 del 并没有删除目录!然后我遇到了文件名太长的问题,但已通过此解决:https://superuser.com/questions/78434/how-to-delete-directories-with-path-names-too-long-for-normal-delete)

关于node.js - libxmljs "could not locate the bindings file"错误(Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32207570/

相关文章:

javascript - 类型错误:react__WEBPACK_IMPORTED_MODULE_2___default(...) 不是函数。我该如何解决这个问题?

javascript - Vuejs - npm 版本补丁 - git 工作目录不干净

node.js - NPM 找不到模块 bash

xml - 如何使用 libxmljs 从 pom.xml 检索 xpath

Cypress.io - sitemap.xml 验证测试

javascript - 如何在node js和mysql中检查数据库连接是否成功

javascript - 中间件 EJS 不呈现任何 JPG 文件

javascript - 如何禁止非授权用户访问API?

node.js - 每当 Node 应用程序停止时启动它

javascript - 错误 : Cannot find module 'xml2json'