2013-08-04 52 views
1

流星有一個很好的文件加載策略用於一般開發。它會自動從app目錄中加載文件,並對publicprivateclientserver目錄進行一些特殊處理。 (見http://docs.meteor.com/#structuringyourapp如何將JavaScript項目回購符號鏈接到流星應用程序

當加載第三方JavaScript庫爲流星應用程序,我通常把它們放在一個<head>腳本或直接在client/compatibility目錄,這對於發佈的文件效果很好。

但是,有時我需要在測試修補程序或請求時直接從某個分支的GitHub存儲庫鏈接項目的開發版本。 我已經爲Meteor智能包一直這樣做了,而這些包都是透明地拾取的。但是,我不確定如何爲通用(客戶端)Javascript庫執行此操作。此外,這是一個回購鏈接,而不是一個棘手的上市版本。有誰不得不這樣做給人建議?

回答

1

對此的一種方法在https://github.com/meteor/meteor/issues/1229中簡要描述。

我發現這可以乾淨地實現爲您的應用程序中的常駐智能包。這種方法在Meteor 0.6.5和任何未來的版本中都能很好地工作,直到這個API發生變化。首先在package.js創建以下文件:

Package.on_use(function (api) { 
    api.use(['routepolicy', 'webapp'], 'server'); 

    api.add_files('client.html', 'client');  
    api.add_files('server.js', 'server'); 
}); 

server.js,聲明要流星就可以提供一個完整的目錄(回購的適當部分)作爲應用程序的一部分(在我的情況,的OpenLayers) :

connect = Npm.require('connect'); 

RoutePolicy.declare('/lib', 'network'); 

WebApp.connectHandlers 
    .use(connect.bodyParser()) 
    .use('/lib', connect.static("/home/mao/projects/openlayers/lib")); 

最後,client.html告訴你的應用程序在正確的道路,加載代碼:

<head> 
    <script src="/lib/OpenLayers.js"></script>  
</head> 

假設上述軟件包位於名爲openlayers的目錄中,在我的應用程序的package文件中對openlayers進行評論或取消註釋可以讓我真正輕鬆地在編譯版本之間進行切換,並從此軟件包的回購庫中運行。

相關問題