【问题标题】:How to symlink Javascript projects repos into a Meteor app如何将 Javascript 项目 repos 符号链接到 Meteor 应用程序中
【发布时间】:2013-08-10 04:21:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript repository meteor


    【解决方案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 中,您声明您希望 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 的目录中,在我的应用程序的 package 文件中注释或取消注释 openlayers 允许我在已编译的版本和从该包的 repo 运行之间非常轻松地切换。

    【讨论】:

      猜你喜欢
      • 2020-03-11
      • 2016-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多