2016-08-04 43 views
2

我從我的客戶端獲得了一個新的Angular + Node項目,我在本地設置了它。該應用程序運行良好。但是,一個問題是,當我運行grunt命令和我的系統掛起時CPU佔用100%。但在具有相同配置的客戶機上,一切似乎都運行良好。由grunt觀看的計數文件

看過很多線程後,我發現這種問題發生在grunt正在監視太多文件時。我還使用grunt watch --verbose來查看我正在觀看的文件。事實上,我倒像我們正在觀看許多不必要的文件,如angluar和jquery庫文件。

有沒有什麼方法/插件來確切地算出我通過grunt命令觀看的文件數量?

回答

2

如果它在配置/環境相同但功率更大的計算機上正常工作,那麼我認爲假設您正在監視太多文件是正確的。

如果你還沒有,你應該在一個配置上運行grunt watch,該配置只監視幾個文件,以進一步支持你只是看着太多文件的路徑。

最後,你應該只是在觀看需要觀看的文件,換句話說,在開發過程中實際上會發生變化。第三方庫等應絕對不包含在該集合中!

我向你推薦的只是看你需要觀看的文件,並且你可以精確地指定你需要觀看的文件,或者在某種程度上具體使用glob模式。我還會指出,你可以使用否定運算符!和glob。

如果按照我的建議後,您仍然有同樣的問題,你有三種選擇,因爲我看到它:

  1. 一次創建更具體的手錶的任務,只運行一個或兩個人。
  2. 升級您的硬件
  3. 請勿使用watch,只需從命令行手動觸發任務即可。

編輯: 添加從下面的評論的答案,因爲它直接解決提出的問題。

要計算grunt觀看的文件,請使用linux find命令並將其傳送到wc -l。因此,如果您在您的項目根目錄下運行,並且想要計算存在於src目錄及其子目錄中的擴展名爲.js的文件的數量,那麼這看起來就像find . -name "src/*.js" | wc -l。我們在這裏所做的是找到符合條件的所有文件,然後通過使用wc命令和-l來統計stdout中的換行符來計算文件數量。

+0

我運行了'grunt watch --verbose',並從終端上覆制了所有看過的文件名並粘貼在記事本++文件中,我可以看到它正在觀看1152個文件。足夠使CPU使用率達到100%嗎? –

+0

有些變量,比如CPU的強大功能,使我無法確定地回答這些問題。總而言之,是的,這是可能的。這是很多文件。我會更精確地處理您正在觀看的文件。另外,你應該確保你正在運行grunt和grunt-contrib-watch的最新版本,因爲在grunt-contrib-watch的歷史上有很多的性能改進。 – rdgd

+0

此外,即使看起來你的文件大致相當,要回答如何計算grunt監視的文件的問題,請使用linux find命令並將其傳遞給「wc -l」。因此,如果您在項目根目錄下運行,並且想要計算存在於src目錄及其子目錄中的擴展名爲.js的文件的數量,那麼這將看起來像'find。 -name「src/*。js」| wc -l'。我們在這裏做的是找到所有符合條件的文件,然後通過使用'wc'命令和'-l'來計算新文件的數量。 – rdgd