I'm using a module called gulp-xml-editor which uses libxmljs. All working well on our Macs, but when I try on our Windows machine, I get: "Could not locate the bindings file" referring to the bindings dependency of libxmljs:
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)
Set up is:
- Windows 8.1 Pro
- Visual Studio Professional 2013
- Node v0.12.7
- NPM v2.11.3
- gulp-xml-editor v2.2.1
- libxmljs v0.14.2
- Python v2.7
The only file in libxmljs\build\
is config.gypi
(which seems strange because there are more files there on my Mac).
Earlier on I was getting different errors. Firstly, libxmljs couldn't find the 'bindings' module at all - presumably because its 'npm install' had failed. Trying to npm install
it directly gave an ETIMEOUT
on node-gyp rebuild
. Re-installing node-gyp and/or installing Python v2.7 (instead of v3) fixed that though. Now npm install
seems to work OK except for some warnings:
C:\HiddenPath\App Source>npm install
npm WARN package.json [email protected] No license field.
> [email protected] 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 [email protected] 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>
Turns out I just needed to clear out
node_modules
and do a cleannpm install
!(I thought I had done that, but it's because I'm not used to Windows and didn't realise
del
wasn't deleting the directory! Then I had an issue with filenames that were too long but that was fixed by this: https://superuser.com/questions/78434/how-to-delete-directories-with-path-names-too-long-for-normal-delete)