我需要基于现有的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
,因此应用程序崩溃。
答案 0 :(得分:0)
首先加载包文件。然后你的常规文件。
包文件不依赖于常规项目中的文件。包文件只能依赖于您明确列出的包的依赖性。