【问题标题】:How to separate Meteor project into modules如何将 Meteor 项目分成模块
【发布时间】:2017-09-24 00:40:35
【问题描述】:

我的 Meteor 项目有两个部分:

  1. 主页:任何人都可以访问。
  2. 管理控制台:仅向管理员提供一些管理工具

当我在生产模式下运行这个项目时:

$ meteor --production

Meteor 会将所有客户端代码合并到一个大文件中,从而使“管理控制台”代码也交付给普通访问者。

有没有办法将 javascript/css 文件“缩小”为两个文件? 一份给普通访客,一份给管理员?

我也把这个项目打包成Android包,“管理控制台”代码也存在于apk文件中,我该如何排除它们?

谢谢。

【问题讨论】:

  • 目前没有。您需要创建单独的应用程序并在不同的域/子域上运行它们。
  • 或者,您可以尝试使用anti:modules 包。不过,它仍处于大力发展阶段。

标签: meteor


【解决方案1】:

您可以使用流星动态导入仅根据客户端正在使用的视图将代码下载到客户端。我还没有尝试过,但应该可以不根据用户的角色动态加载文件。

类似:

//must be called inside a meteor method or publish function
async function adminOnlyApi() {
  if(Roles.userIsInRole(Meteor.userId, ['admin']) {
    return await import('path/to/lib');
  }
  return {};
}

假设库导出一个默认对象,其键为“foo”,值为“bar”,以管理员身份登录时调用 adminOnlyApi.foo 应返回“bar”,而以任何其他用户登录时返回 undefined...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    相关资源
    最近更新 更多