首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能为文件名只服务于客户端或服务器制定规则?

是否有可能为文件名只服务于客户端或服务器制定规则?
EN

Stack Overflow用户
提问于 2015-04-26 20:29:46
回答 2查看 50关注 0票数 1

Meteor有特殊的目录:serverclient,用于只向服务器或客户端提供文件。

是否可以使用类似的行为,但不使用客户端和服务器文件夹名称,而使用以.client.js.server.js结尾的文件名?

例如,collections.client.js只在客户机上可用,而collections.server.js只在服务器上可用?

UPD也许可以创建智能包来控制服务文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-26 20:51:03

这是不可能的,但是,您可以做的是:

lib/collections/collection.js

声明集合和常见的客户机/服务器行为(如Meteor.methods )。

client/collections/collection.js

声明与集合有关的客户端特定的帮助程序。

server/collections/collection.js

声明出版物和其他服务器端助手。

您也可以在lib/collections/collection.js中声明所有内容,并使用Meteor.isClientMeteor.isServer块。对于非常小的文件来说,这可能是可以的,但是对于较大的项目来说,它很快就会变得一团糟。我不确定Meteor构建工具是否足够聪明,可以将Meteor.isServer从提供给客户端的包中删除。

您还可以使用模块化方法并使用包,使用Package API,您可以精确地控制应该执行文件的上下文。

代码语言:javascript
复制
Package.describe({
  name: "my-app-module",
  description: "Handles some feature in My App",
  version: "1.0.0"
});

Package.onUse(function(api){
  api.addFiles({
    "my-module/shared.js"
  },["client","server"]);
  //
  api.addFiles({
    "my-module/client.js"
  },"client");
  //
  api.addFiles({
    "my-module/server.js"
  },"server");
  //
  api.export("MyModule",["client","server"]);
});
票数 1
EN

Stack Overflow用户

发布于 2015-04-26 20:43:20

嗯,现在你不能这么做,但是你可以把你的代码

代码语言:javascript
复制
if (Meteor.isServer) {
    // your server code
};

if (Meteor.isClient) {
    // your client code
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29883142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档