如何在启动Meteor应用程序时修复Meteor包使用的npm包的编译错误?

时间:2016-08-25 05:58:21

标签: meteor compilation npm package

Meteor应用程序myapp使用Meteor软件包mypackage,它使用npm软件包pingan-payment

当我开始" myapp"使用meteormypackage尝试编译pingan-payment。但是在编译其中一个依赖项libxmljs时失败了:

$ meteor
[[[[[ ~/temp/myapp ]]]]]  

=> Started proxy.                             
myorg:mypackage: updating npm dependencies -- pingan-payment, dateformat, request, urllib...
=> Errors prevented startup:                  

   While building package myorg:mypackage:
   error: couldn't install npm packages from npm-shrinkwrap: Command failed: npm WARN package.json packages-for-meteor-smartpackage-16ai9vy@0.0.0 No
   description
   npm WARN package.json packages-for-meteor-smartpackage-16ai9vy@0.0.0 No repository field.
   npm WARN package.json packages-for-meteor-smartpackage-16ai9vy@0.0.0 No README data
   ../vendor/libxml/encoding.c: In function ‘xmlCharEncCloseFunc’:
   ../vendor/libxml/encoding.c:2856:12: warning: variable ‘handler_in_list’ set but not used [-Wunused-but-set-variable]
   int i, handler_in_list = 0;
   ^
   In file included from ../vendor/libxml/xpath.c:462:0:
   ../vendor/libxml/timsort.h: In function ‘libxml_domnode_tim_sort_collapse’:
   ../vendor/libxml/timsort.h:405:65: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if ((stack_curr == 2) && (stack[0].length + stack[1].length == size)) {
   ^
   ../vendor/libxml/timsort.h:397:19: warning: variable ‘BD’ set but not used [-Wunused-but-set-variable]
   int ABC, BCD, BD, CD;
   ^
   ../vendor/libxml/xpath.c: In function ‘xmlXPathNodeCollectAndTest’:
   ../vendor/libxml/xpath.c:12406:28: warning: comparison between ‘xmlElementType {aka enum <anonymous>}’ and ‘xmlXPathTypeVal {aka enum <anonymous>}’
   [-Wenum-compare]
   } else if (cur->type == type) {
   ^
   In file included from ../vendor/libxml/xpath.c:476:0:
   ../vendor/libxml/xpath.c: At top level:
   ../vendor/libxml/trionan.c:194:1: warning: ‘trio_is_special_quantity’ defined but not used [-Wunused-function]
   trio_is_special_quantity
   ^
   ../vendor/libxml/trionan.c:218:1: warning: ‘trio_is_negative’ defined but not used [-Wunused-function]
   trio_is_negative
   ^
   ../vendor/libxml/xpointer.c: In function ‘xmlXPtrNewRangeNodePoint’:
   ../vendor/libxml/xpointer.c:451:21: warning: comparison between ‘xmlElementType {aka enum <anonymous>}’ and ‘enum <anonymous>’
   [-Wenum-compare]
   if (start->type != XPATH_POINT)
   ^
   ../src/libxmljs.cc:3:16: fatal error: v8.h: No such file or directory
   compilation terminated.
   make: *** [Release/obj.target/xmljs/src/libxmljs.o] Error 1
   gyp ERR! build error 
   gyp ERR! stack Error: `make` failed with exit code: 2
   gyp ERR! stack     at ChildProcess.onExit
   (/home/leo/.meteor/packages/meteor-tool/.1.1.9.30iceu++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/n$
de_modules/node-gyp/lib/build.js:267:23)
   gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
   gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
   gyp ERR! System Linux 4.4.0-31-generic
   gyp ERR! command "node"
   "/home/leo/.meteor/packages/meteor-tool/.1.1.9.30iceu++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/n$
de_modules/node-gyp/bin/node-gyp.js"
   "rebuild"
   gyp ERR! cwd
   /home/leo/temp/myapp/packages/mypackage/.npm/package-new-zx4ald/node_modules/pingan-payment/node_modules/libxmljs
   gyp ERR! node -v v0.10.40
   gyp ERR! node-gyp -v v1.0.1
   gyp ERR! not ok 

   npm ERR! libxmljs@0.18.0 install: `node-gyp rebuild`
   npm ERR! Exit status 1
   npm ERR! 
   npm ERR! Failed at the libxmljs@0.18.0 install script.
   npm ERR! This is most likely a problem with the libxmljs package,
   npm ERR! not with npm itself.
   npm ERR! Tell the author that this fails on your system:
   npm ERR!     node-gyp rebuild
   npm ERR! You can get their info via:
   npm ERR!     npm owner ls libxmljs
   npm ERR! There is likely additional logging output above.
   npm ERR! System Linux 4.4.0-31-generic
   npm ERR! command
   "/home/leo/.meteor/packages/meteor-tool/.1.1.9.30iceu++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node"
   "/home/leo/.meteor/packages/meteor-tool/.1.1.9.30iceu++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/npm" "install"
   npm ERR! cwd /home/leo/temp/myapp/packages/mypackage/.npm/package-new-zx4ald
   npm ERR! node -v v0.10.40
   npm ERR! npm -v 1.4.28
   npm ERR! code ELIFECYCLE
   npm ERR! not ok code 0
   npm WARN package.json packages-for-meteor-smartpackage-16ai9vy@0.0.0 No description
   npm WARN package.json packages-for-meteor-smartpackage-16ai9vy@0.0.0 No repository field.
   npm WARN package.json packages-for-meteor-smartpackage-16ai9vy@0.0.0 No README data
   ../vendor/libxml/encoding.c: In function ‘xmlCharEncCloseFunc’:
   ../vendor/libxml/encoding.c:2856:12: warning: variable ‘handler_in_list’ set but not used [-Wunused-but-set-variable]
   int i, handler_in_list = 0;
   ^
   In file included from ../vendor/libxml/xpath.c:462:0:
   ../vendor/libxml/timsort.h: In function ‘libxml_domnode_tim_sort_collapse’:
   ../vendor/libxml/timsort.h:405:65: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if ((stack_curr == 2) && (stack[0].length + stack[1].length == size)) {
   ^
   ../vendor/libxml/timsort.h:397:19: warning: variable ‘BD’ set but not used [-Wunused-but-set-variable]
   int ABC, BCD, BD, CD;
   ^
   ../vendor/libxml/xpath.c: In function ‘xmlXPathNodeCollectAndTest’:
   ../vendor/libxml/xpath.c:12406:28: warning: comparison between ‘xmlElementType {aka enum <anonymous>}’ and ‘xmlXPathTypeVal {aka enum <anonymous>}’
   [-Wenum-compare]
   } else if (cur->type == type) {
   ^
   In file included from ../vendor/libxml/xpath.c:476:0:
   ../vendor/libxml/xpath.c: At top level:
   ../vendor/libxml/trionan.c:194:1: warning: ‘trio_is_special_quantity’ defined but not used [-Wunused-function]
   trio_is_special_quantity
   ^
   ../vendor/libxml/trionan.c:218:1: warning: ‘trio_is_negative’ defined but not used [-Wunused-function]
   trio_is_negative
   ^
   ../vendor/libxml/xpointer.c: In function ‘xmlXPtrNewRangeNodePoint’:
   ../vendor/libxml/xpointer.c:451:21: warning: comparison between ‘xmlElementType {aka enum <anonymous>}’ and ‘enum <anonymous>’
   [-Wenum-compare]
   if (start->type != XPATH_POINT)
   ^
   ../src/libxmljs.cc:3:16: fatal error: v8.h: No such file or directory
   compilation terminated.
   make: *** [Release/obj.target/xmljs/src/libxmljs.o] Error 1
   gyp ERR! build error 
   gyp ERR! stack Error: `make` failed with exit code: 2
   gyp ERR! stack     at ChildProcess.onExit
   (/home/leo/.meteor/packages/meteor-tool/.1.1.9.30iceu++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/no
de_modules/node-gyp/lib/build.js:267:23)
   gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
   gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
   gyp ERR! System Linux 4.4.0-31-generic
   gyp ERR! command "node"
   "/home/leo/.meteor/packages/meteor-tool/.1.1.9.30iceu++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/no
de_modules/node-gyp/bin/node-gyp.js"
   "rebuild"
   gyp ERR! cwd
   /home/leo/temp/myapp/packages/mypackage/.npm/package-new-zx4ald/node_modules/pingan-payment/node_modules/libxmljs
   gyp ERR! node -v v0.10.40
   gyp ERR! node-gyp -v v1.0.1
   gyp ERR! not ok 

   npm ERR! libxmljs@0.18.0 install: `node-gyp rebuild`
   npm ERR! Exit status 1
   npm ERR! 
   npm ERR! Failed at the libxmljs@0.18.0 install script.
   npm ERR! This is most likely a problem with the libxmljs package,
   npm ERR! not with npm itself.
   npm ERR! Tell the author that this fails on your system:
   npm ERR!     node-gyp rebuild
   npm ERR! You can get their info via:
   npm ERR!     npm owner ls libxmljs
   npm ERR! There is likely additional logging output above.
   npm ERR! System Linux 4.4.0-31-generic
   npm ERR! command
   "/home/leo/.meteor/packages/meteor-tool/.1.1.9.30iceu++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node"
   "/home/leo/.meteor/packages/meteor-tool/.1.1.9.30iceu++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/npm" "install"
   npm ERR! cwd /home/leo/temp/myapp/packages/mypackage/.npm/package-new-zx4ald
   npm ERR! node -v v0.10.40
   npm ERR! npm -v 1.4.28
   npm ERR! code ELIFECYCLE
   npm ERR! not ok code 0


=> Your application has errors. Waiting for file change.

我在上面的错误消息中搜索了~/temp/myapp~/.meteor文件../vendor/libxml/encoding.c,但是没有。

如何调试和修复错误?

4 个答案:

答案 0 :(得分:0)

您的错误转储显示您使用的是旧版meteor-tool包。您应该考虑将Meteor(meteor update)更新为更新版本,因为最近有number of improvements专门围绕node-gyp集成。

答案 1 :(得分:0)

在为libxml编译libxmljs时,您缺少系统包。当您拥有一个普通操作系统时,通常会发生此特定错误。

请尝试以下命令:

apt-get install libxml2-dev

答案 2 :(得分:0)

你需要安装 apt-get install g ++ libtool libxml2-dev libxml2

答案 3 :(得分:0)

我昨天遇到了同样的v8.h: No such file or directory错误,原因可能是我使用nvm运行节点v6.x但系统的节点是v0.10而libxmljs有点使用错误的node-gyp来编译它的代码。因此,在根据https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04将系统节点更新到v6.x后,模块正确编译。