[英]How do I obtain the path of a file in a Meteor package?
這很復雜。
meteor run
將項目文件復制到<project-dir>/.meteor/local/build
內的目錄樹中,以非顯而易見的方式重新組織它們(例如,原始樹中的private子目錄成為assets子目錄)並混合它使用各種npm模塊創建一個可以作為nodejs項目執行的包。 實際上,為了避免重復,在.meteor目錄中會自動設置一個.gitignore文件,告訴git,如果你用它進行版本控制,則不要復制.meteor / local目錄。
在您更改文件時,將監視原始項目目錄。 然后將更改復制到當前項目構建目錄中並重建項目。
如果部署到遠程系統,則構建將復制到服務器然后運行。
process
通常是一個定義的全局服務器端對象,並根據node.js API工作,因為流星服務器代碼最終在node.js中運行。
所以你可以運行console.log(process.cwd());
在服務器端獲取服務器進程的當前工作目錄,通常類似於:
~/<meteor project directory>/.meteor/local/build/programs/server
這表明當meteor run
在本地完成時,原始項目文件位於../../../../../
,但不要使用它,因為它可能在將來發生變化。
相反,對於包含原始項目文件的目錄,您可以使用:
baseDir = process.cwd().replace(/\/\.meteor.*$/, '');
這將獲取工作目錄,並截斷以/.meteor
開頭的所有/.meteor
但是,這不適用於服務器部署,因為服務器上不需要原始項目樹,只需要構建。 不打算作為客戶端或服務器代碼的文件可能會卡在私有子目錄中,正如我所提到的那樣,它成為構建中的資產子目錄。 當前在構建中查找文件的方法是在本地運行中手動檢查.meteor / local,或者使用調用或模仿gnu find的JS庫。
既然你提到了包 ,我注意到在構建中,服務器端包代碼最終會出現在:
~/<project-dir>/.meteor/local/build/programs/server/packages
和客戶方:
~/<project-dir>/.meteor/local/build/programs/web.browser/packages
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.