Vue.js CASL在Vue生产模式下工作不正常
我已经为特定角色定义了一些规则,它们都很好地工作。但当我在生产模式下构建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':
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
函数才能返回正确的名称
请点击链接了解更多信息