2011-06-10 63 views
2

看到node.js是如何最終成爲javascript的,在嘗試運行應用程序命令時不應該更改任何文件嗎?我已經在github上分叉了yuidocjs回購,並試圖通過我的本地構建工作,但由於某些原因,我的小變更沒有得到迴應。我是node.js的新手,所以我不確定具體的約定是什麼。node.js應該是瞬時變化的嗎?

回答

3

在node.js中當你require文件的源代碼被解釋。在啓動服務器時要求所有代碼被認爲是一個好習慣,以便所有代碼都被解釋一次。

只要你運行它,代碼不會得到重新解釋。

所以更改不是即時的。

爲了幫助您,請嘗試supervisor,它可以在代碼更改時重新加載服務器。

通過重新解釋源代碼可以使即時更改發生,但這不是默認操作。通常你應該重新啓動服務器。

+0

我沒有得到主管的工作(至少還沒有,有點錯誤在循環中拋出一個錯誤),但我只是最終重新安裝包與npm。 – hellatan 2011-06-10 19:29:18

+0

@dtan如果它錯誤地出現錯誤循環,那麼這意味着你的代碼崩潰了一個錯誤。然後它會嘗試重新啓動節點,並且您的代碼再次崩潰。它會嘗試重新啓動節點,並且您的代碼會崩潰_again_ ad infinity。殺死主管,閱讀錯誤,修復錯誤,再次嘗試 – Raynos 2011-06-10 19:32:54

+0

感謝raynos的解釋。我會在下週做。這是星期五=) – hellatan 2011-06-10 20:53:21

0

另請參閱nodemon,它將自動在其權限下重新加載已更改的文件。

編輯

重讀你的問題,看來你是想詢問以下情形:

  1. 運行應用程序來測試
  2. 退出應用程序來重構的js代碼
  3. 重新啓動應用程序

你在問爲什麼你的改變沒有出現在第3步?

如果是這種情況,您會看到很奇怪的,這可能與如何以及從何處需要文件相關。

在節點上,運行:

console.dir(require.paths); 

要查看節點正在尋找你需要的任何資源。如果您在所列的任何路徑中都更改了文件的副本,而這些路徑並非您正在編輯的文件,則可以解釋您的問題。