1

Meteor 具有适用于一般开发的出色文件加载策略。它会自动从 app 目录加载文件,并对、public和目录进行一些特殊处理。(见http://docs.meteor.com/#structuringyourappprivateclientserver

在将第三方 Javascript 库加载到 Meteor 应用程序中时,我通常将它们放在<head>脚本中或直接放在client/compatibility目录中,这对于发布的文件很有效。

但是,有时在测试补丁或拉取请求时,我需要直接从某个分支的 GitHub 存储库链接项目的开发版本。我已经为透明地拾取的 Meteor 智能包一直这样做了。但是,我不确定如何为一般(客户端)Javascript 库执行此操作。此外,它是回购的链接而不是列出的版本是棘手的。必须这样做的人可以提出建议吗?

4

1 回答 1

1

在https://github.com/meteor/meteor/issues/1229中简要描述了一种方法。

我发现这可以在您的应用程序中清晰地实现为常驻智能包。在此 API 更改之前,此方法在 Meteor 0.6.5 和任何未来版本中运行良好。首先在中创建以下内容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,您声明您希望 Meteor 提供整个目录(repo 的适当部分)作为应用程序的一部分(在我的例子中,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注释或取消注释允许我在已编译的版本之间非常轻松地切换,并从该包的 repo 运行。openlayerspackage

于 2013-08-09T20:21:00.463 回答