2012-05-03 34 views
30

我有一個基於JavaScript的庫,我想將其包含在Meteor JS應用程序中。庫源代碼託管在Git倉庫中,我希望將回購作爲子模塊包含在我自己的Meteor應用程序的源代碼倉庫中。但是,我不需要Meteor處理的大部分文件,只有少數選擇的文件。事實上,流星barfs的「錯誤:無法解析..恩......一些HTML文件,在某些行上,很遺憾」,當它看到子模塊中的許多文件時。忽略Meteor JS項目目錄中的文件

有沒有辦法選擇性地將白名單或黑名單文件包含到項目目錄中的Meteor應用程序中?除了創建一個智能軟件包之外,是否有方法可以將我的Meteor應用程序項目目錄中的外部資源(如Git子模塊)包含進來。

更新:如在"How to create a package"的相關問題中所述,如果您創建智能包到Meteor本地Git簽出中,您將獲得包中代碼的熱重載行爲。

回答

34

除了jonathan提到的/public目錄之外,Meteor也忽略了任何以「。」開頭的目錄。 - 所以你可以創建一個.submodules目錄並將文件放在那裏,流星不會加載它們。

這可能更適合讓他們在/public之後,因爲他們不公開。

+0

該死的,是的,我忘了那些。我想這就是答案。 – jonathanKingston

+0

你會如何加載它們? +1有趣的信息雖然:) –

+0

啊,輝煌!爲此非常感謝。對此的一個後續問題:我嘗試從.submodules那些實際上希望Meteor處理的文件進行symlinking,然後更改源文件,但它看起來像Meteor沒有選擇對符號鏈接文件所做的更改。 – mz2

0

不,唯一的方法是編寫一個導入腳本。

有一個/公共目錄,你可以使用所有的文件,如果你不知道這一點。

但是我個人並不認爲這是一個問題,當然你不是隻想根據某個路徑導入文件,如果他們改變了他們的代碼來添加一個新的所需文件,你的文件也會被打破。這不是我想要在部署上找到的東西,而是計劃每次更改版本的依賴關係。

+0

是的,我知道你的意思,它更多的是一個快捷方式,我在Meteor的上下文中用作子模塊的東西正在積極變化,每次都要把它封裝爲智能包我改變它。基本上,我想獲得自動配置魔法的好處,也適用於與Meteor應用程序沒有嚴格關聯但也用於別處的代碼。 – mz2

19

更新:即將發佈的Meteor(0.6.5)中有一個private目錄,您可以在其中放置客戶端無法訪問的文件,並且不會自動加載到服務器上。全局對象和API允許您讀取這些文件。

+0

鑑於目前Meteor的發佈,這似乎是最正確的答案。 – Jesse

0

這聽起來有點古怪,但在流星1.3存在..

/imports

..directory,未自動流星包括在內。

它是'的意思'/由名稱建議,用於從其他代碼導入的模塊。但是,您可以將它用於您自己的應用程序代碼,我認爲這是一個比/private更好的應用程序代碼名稱,但這是我個人的觀點:-)

2

現在還支持.meteorignore文件(Meteor v1.5.2.1)。它的工作原理與.gitignore完全相同。

你可以在你的項目的任何目錄中使用它們,並與文件監視系統完全集成。