簡體   English   中英

啟動Meteor應用程序時,如何解決Meteor軟件包使用的npm軟件包的編譯錯誤?

[英]How to fix compiling error of a npm package used by a Meteor package when starting a Meteor app?

一個Meteor應用程序myapp使用一個Meteor軟件包mypackage ,該軟件包使用一個npm軟件包pingan-payment

當我用meteor開始“ myapp”時, mypackage嘗試編譯pingan-payment 但是在編譯其依賴libxmljs之一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 ,但沒有。

如何調試和修復錯誤?

錯誤轉儲表明您正在使用較舊版本的meteor-tool包。 您應該考慮將Meteor( meteor updatemeteor update到最新版本,因為最近圍繞node-gyp集成進行了許多改進

libxmljs編譯libxml時,缺少系統軟件包。 當您使用普通操作系統時,通常會發生此特定錯誤。

請嘗試以下命令:

apt-get install libxml2-dev

您需要安裝apt-get install g ++ libtool libxml2-dev libxml2

我遇到了相同的v8.h: No such file or directory昨天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之后,模塊可以正確編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM