2014-02-23 116 views
1

我試圖端口一個PHP項目的Node.js的Node.js不能編譯安裝測試

我安裝節點0.10.26使用通用安裝程序從node.org下載的Mac OS X 。路徑env包含可執行文件的右路徑..etc。

我轉換的第一個文件/模塊,試圖檢查使用

node - p ~/path/with/no/spaces/to/myFile.js 

其語法的結果是一條錯誤:

Minis-Mac:Projects newbnz$ node -p ~/Projects/convert/application/models/mdAPI.js 
[eval]:1 
/Users/maat/Projects/convert/application/models/mdAPI.js 
^ 
SyntaxError: Invalid flags supplied to RegExp constructor 'newbnz' 
    at new RegExp (<anonymous>) 
    at [eval]:1:1 
    at Object.<anonymous> ([eval]-wrapper:6:22) 
    at Module._compile (module.js:456:26) 
    at evalScript (node.js:532:25) 
    at startup (node.js:80:7) 
    at node.js:902:3 

我繼續嘗試做相同與節點一起安裝的測試文件之一:

Minis-Mac:Projects newbnz$ node -p /usr/local/lib/node_modules/npm/test/common.js 

[eval]:1 
/usr/local/lib/node_modules/npm/test/common.js 
^ 
SyntaxError: Invalid flags supplied to RegExp constructor 'local' 
    at new RegExp (<anonymous>) 
    at [eval]:1:1 
    at Object.<anonymous> ([eval]-wrapper:6:22) 
    at Module._compile (module.js:456:26) 
    at evalScript (node.js:532:25) 
    at startup (node.js:80:7) 
    at node.js:902:3 

我在OS小牛上運行它。

信息披露:我是c/C++開發人員,也是JS和node.js的新手。

回答

0

因爲我正在做一個從PHP到Node的端口,所以我錯過了在文件起始處的 模糊行處的'數組'聲明。即語法錯誤。

修復語法錯誤後,我推我的運氣,看我是否可以使用節點-p作爲一種手段來檢查語法(張貼在堆棧溢出問題之一的某處),但它仍然沒有工作。

我發現錯誤的方式是我打開了一個新的js文件,開始通過stmt複製stmt直到找到它。

謝謝。

0

您傳遞-p標誌,根據node --help這會導致如下:

-p, --print   evaluate script and print result 

然後你通過你的應用程序的文件路徑,~/path/with/no/spaces/to/myFile.js,這是由你的shell翻譯成/Users/maat/Projects/convert/application/models/mdAPI.js

現在,因爲您使用了-p標誌,所以您認爲您告訴節點用來啓動應用程序的「路徑」實際上被解釋爲原始javascript,就好像它被傳遞給了eval函數。

並且給定路徑的格式(以/開頭,並且不包含單引號或雙引號),節點將其解釋爲JavaScript正則表達式,然後嘗試對其進行評估(使用不正確的正則表達式語法) - 因此導致您的控制檯中的神祕錯誤。

長話短說,刪除國旗,你應該得到你想要的行爲。

+0

我刪除了-p並在安裝的測試中嘗試了它以避免我自己的錯誤。它仍然沒有成功編譯。這裏是回聲: Minis-Mac:項目newbnz $ node /usr/local/lib/node_modules/npm/test/common.js /usr/local/lib/node_modules/npm/test/common.js:9 }); (Module._compile(module.js:439:25) )。(module.js:356:32) at Function.Module._load(module.js:312:12) at Function.Module.runMain(module.js:497:js:474:10) at Module.load 10) 在啓動時(node.js:119:16) 在node.js:902:3 – user3342339