Vue.js CASL在Vue生产模式下工作不正常

Vue.js CASL在Vue生产模式下工作不正常,vue.js,casl,Vue.js,Casl,我已经为特定角色定义了一些规则,它们都很好地工作。但当我在生产模式下构建vue项目时,所有规则都给出了错误的结果。详情如下: 我有一个文件ability.js,它给了我规则: export const getRules = (role, userId) => { const { can, cannot, rules } = AbilityBuilder.extract() switch(role) { case 'TENANT_ADMIN':

我已经为特定角色定义了一些规则,它们都很好地工作。但当我在生产模式下构建vue项目时,所有规则都给出了错误的结果。详情如下:

我有一个文件
ability.js
,它给了我规则:

export const getRules = (role, userId) => {
     const { can, cannot, rules } = AbilityBuilder.extract()
     switch(role) {
          case 'TENANT_ADMIN':
                   can('manage', 'all')
                   break
          case 'TENANT_AGENT': 
                   can('view', 'ConversationView')
                   break
          case 'TENANT_AGENT_LIMITED': 
                   can('view', 'ConversationView', { userId: userId })
                   break
     }
     return rules
}
我正在更新App.vue中的规则(所有值都有效)

我正在使用下面的代码检查权限

class ConversationView {
    constructor(props) {
        Object.assign(this, props)
    }
}

this.$can('view', new ConversationView({ userId: Id }))
现在,当我在本地/开发模式下运行此代码时。它工作得很好(在需要的地方给我true),但是当我生成一个生产构建时,它并没有按预期工作(总是给我false)

开发构建命令:

vue-cli-service build --mode local --modern
vue-cli-service build --mode prod --modern
开发-建造-环境-本地

VUE_APP_STAGE=development
NODE_ENV=development
生产构建命令:

vue-cli-service build --mode local --modern
vue-cli-service build --mode prod --modern
Production Build.env.prod

VUE_APP_STAGE=production
NODE_ENV=production
让我知道为什么会这样

复制了此处的步骤。

按照以下链接查看正在运行的版本和预期版本: 输出:

在本地克隆相同的项目,或从[github]下载 运行后,我们将获得以下输出:

Checking for '1' => false 
Checking for 1 => false 
Checking for '2' => false

已获得解决方案。由于产品的缩小,生成代码未按预期工作。必须定义
modelName
函数才能返回正确的名称

请点击链接了解更多信息