2013-04-26 35 views
1

我有一個使用node.js運行的應用程序 - 爲了運行一個特定的錯誤,我有一個自定義版本的節點(不是系統默認安裝),我想運行我的應用程序。所以在我的啓動腳本更改:我可以在'npm install'中設置npm使用的編譯庫路徑嗎?

#!/usr/bin/env node 

#!/Users/cmlacy/Dropbox/Engine/code/node-v0.8.9/out/Release/node 

當我運行應用程序,我得到了一系列的錯誤,我沒有改變之前得到:

crispin:node cmlacy$ ./engine.js 
dyld: lazy symbol binding failed: Symbol not found: __ZN2v816FunctionTemplate3NewEPFNS_6HandleINS_5ValueEEERKNS_9ArgumentsEES3_NS1_INS_9SignatureEEE 
    Referenced from: /Users/cmlacy/Dropbox/Engine/code/Engine-Developer/node/node_modules/mongodb/node_modules/bson/build/Release/bson.node 
    Expected in: dynamic lookup 

dyld: Symbol not found: __ZN2v816FunctionTemplate3NewEPFNS_6HandleINS_5ValueEEERKNS_9ArgumentsEES3_NS1_INS_9SignatureEEE 
    Referenced from: /Users/cmlacy/Dropbox/Engine/code/Engine-Developer/node/node_modules/mongodb/node_modules/bson/build/Release/bson.node 
    Expected in: dynamic lookup 

Trace/BPT trap: 5 

我假設這是因爲node_modules中的一些依賴關係已經針對錯誤的節點庫進行了編譯 - 我如何着手在期間更改編譯中包含的節點版本?

回答

0

確保您的特定節點版本位於shell中的系統節點之前的路徑中。這應該做到這一點(當然,清理掉任何舊的node_modules構建目錄)。