我想在我的meteor项目中添加一个包(ground:db),但它只会用在cordova版本中。如果它不会使Web构建中的资产混乱,那就太好了。
这可能吗?
我已经检查了流星添加的文档但没有那里的欢乐。
答案 0 :(得分:1)
Here是来自地面数据库的package.js.
尝试将api.addFiles
替换为此。
api.addFiles([
'groundDB.client.js',
'wrap.collection.js',
'wrap.eventemitter.js',
'wrap.proto.eventemitter.js',
], 'web.cordova');
api.addFiles('groundDB.server.js', 'web.cordova');
});
从此Github Question检查此额外信息。
Inside a package today you can do:
api.addFiles('foo.js', 'web.cordova'): includes foo.js in only Cordova/Phonegap builds.
api.addFiles('bar.js', 'web.browser'): includes bar.js in only browser builds.
api.addFiles('baz.js', 'web'): includes baz.js in all client builds.
and also:
api.use('foo:bar', 'web.cordova'): using the package API in only Cordova/Phonegap builds.
api.use('foo:bar', 'web.browser'): using the package API in only browser builds.
api.use('foo:bar', 'web'): using the package API in all client builds.
检查它是否有效。
答案 1 :(得分:1)
你必须制作一个新的包来做这件事,继续快速一步一步地做你想做的事:
1)如果项目中没有packages
文件夹,请创建一个
2)创建一个目录,以便packages/mobileapp
3)在mobileapp
目录中创建一个包含以下内容的package.js
Package.describe({
summary: "For cordova use only",
});
Package.on_use(function (api) {
if(api.versionsFrom) api.versionsFrom("METEOR@1.0");
api.use(['ground:db'], ['web.cordova']);
});
然后在meteor的根目录中运行
meteor add mobile
这将确保ground:db
包只添加到您的cordova
版本中。 Web构建中不会包含任何源代码。
您还可以使用api.add_files Package.on_use
作为架构,使用web.cordova
方法将文件添加到包中,这样只有您在此处列出的文件才会包含在cordova版本中,但不会网络应用程序构建。
使用if(Meteor.isCordova)
执行此操作的好处是,您不会在Web构建中包含任何不必要的源代码,这有时会使您的Web应用程序