My Meteor项目有两个部分:
在生产模式下运行此项目时:
$ meteor --production
Meteor将把所有客户端代码合并到一个大文件中,这使得" Admin Console"代码也传递给普通访客。
有没有办法缩小"将javascript / css文件分成两个文件? 一个是普通访客,一个是管理员?
我还将此项目打包到Android软件包中,"管理控制台"代码也存在于apk文件中,如何排除它们?
感谢。
答案 0 :(得分:0)
您可以使用meteor动态导入仅根据客户端使用的视图将代码下载到客户端。我还没有尝试过,但应该可以根据用户的角色动态加载文件。
类似的东西:
//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 {};
}
假设lib导出一个带有键'foo'和值'bar'的默认对象,当以admin身份登录时调用adminOnlyApi.foo应返回'bar',并在与任何其他用户登录时返回undefined ...