Meteor:将文件从根客户端和lib文件夹放入流星包中

时间:2015-09-08 08:29:41

标签: javascript meteor

我需要基于现有的meteor-app构建一个流星包。所以我创建了文件夹包,并在此文件夹中创建了新包'package_anything'。

所以我的结构现在是:

.meteor
client
    lib
        helpers.js
        utils.js
    app.js
    startup.js
lib
    router.js
    anything.js
packages
    package_anything
        lib
            client
                public
                    library_1
                    library_2
                templates
                    template.html
                router.js
                subscription.js
            server
                publications.js
            shared
                collections.js
            package.js

现在我遇到问题,将现在在packages-folder之外的文件放入包中。我知道lib内的所有文件都将首先加载。那么我该怎么做呢?

第二个问题是我无法将lib/router.js的内容放在package/package_anything/lib/client/router.js内。如果我这样做,应用程序崩溃。但我不明白为什么。

package.js

Package.describe({
    name: 'name:anything',
    summary: 'example package',
    version: '0.0.1',
    documentation: "README.md"
});

Package.onUse(function(api){
    api.versionsFrom('METEOR@1.1.0.3');

    api.use(['templating', 'mongo']);
    api.use(['iron:router@1.0.9'], 'client');

    api.addFiles([
        'lib/shared/collections.js'
    ], ['client', 'server']);

    api.addFiles([
        'lib/server/publications.js'
    ], ['server']);

    api.addFiles([
        'lib/client/router.js',
        'lib/client/subscription.js'
    ], ['client']);

});

更新 举个例子:

lib/anything.js有内容

App = {}
App.Mode = {}
App.Mode._dep = new Tracker.Dependency()

现在我将这个简单的文件带到packages/package_anything/lib/client/anything.js。我将api.export('App')添加到package.js。

但是这会导致错误Uncaught ReferenceError: Tracker is not defined,因此应用程序崩溃。

1 个答案:

答案 0 :(得分:0)

首先加载包文件。然后你的常规文件。

包文件不依赖于常规项目中的文件。包文件只能依赖于您明确列出的包的依赖性。