2015-03-02 29 views
3

我有一個項目,我希望編譯單獨的腳本包 - 每個頁面上包含一個主要包,以及將包含在特定頁面上的一組單獨包。使用NPM和Watchify編譯多個腳本包

我有一個NPM腳本,看起來像這樣:

"build-site": "watchify Scripts/site.js -o Scripts/bundle.js -v -d .", 
"build-student": "watchify Scripts/modules/student.js -o Scripts/student_bundle.js -v -d .", 
"start": "npm run build-site | npm run build-student", 

所以我跑npm start和Watchify踢,開始看文件。這部分工作得很好。

每當我對學生模塊進行更改時,兩個文件都會重新編譯(沒問題),但是當我在瀏覽器中查看頁面時,出現無法找到模塊「site.js」的錯誤。

如果我然後去site.js文件並修改某些東西,重新編譯會發生,但是這次它在瀏覽器中運行良好。

所以關鍵在於,當我嘗試編譯一個文件時,必須對另一個文件進行更改才能正確編譯。我覺得我這樣做的方式有些不穩定,但我無法找到關於使用Watchify捆綁多個文件的很多信息。

總結我的問題:如何使用Watchify以避免上述問題的方式編譯多個包?

+0

'student.js'是否有require('Scripts/site.js')? – 2015-03-05 00:02:19

+0

@JeromeAnthony是的,它的確如此。 – 2015-03-05 01:11:35

回答

0

這個問題最終似乎是一個非常簡單的問題。我試圖編譯的其中一個文件實際上被包含在另一個文件中。

我懷疑發生了什麼事site.js正在被npm編譯和鎖定,然後編譯student.jssite.js準備好之前就開始了。

我通過刪除冗餘來解決這個問題,而不是自己編譯site.js。它現在包含在student.js中,我只在頁面上包含student_bundle.js而不是site.jsstudent_bundle.js

2

我沒有足夠的代表評論,所以我會在這裏發佈。

您沒有添加目錄結構。

它應該是

"build-site": "watchify Scripts/modules/site.js -o Scripts/bundle.js -v -d ." 

改變site.js從腳本/文件腳本路徑/模塊/文件

不能肯定,我不能看到目錄佈局。