// mylib.config.js
export default defineConfig({
iconsBasePath: 'public/icons'
})
enum MyComponents {
one = "ComponentOne",
two = "ComponentTwo",
three = "ComponentThree",
}
const currentComponent = shallowRef()
onMounted(async () => {
const component = await axios.get()
switch (component) {
case MyComponents.one: currentComponent .value = ComponentOne,
break
case MyComponents.two: currentComponent .value = ComponentTwo
break
case MyComponents.three: currentComponent .value = ComponentThree
break
}
})
enum IRores {
ADMIN = 'admin',
MODERATOR='moderator',
USER = 'user',
BLACK_USER='black_user'
}
enum IPermissions{
WRITE = 'write',
READ = 'read',
UPDATE='update'
DELETE='delete'
ALL='all'
}
const ROLES_PERMISSIONS = new Map([
[IRoles.Admin, [IPermissions.ALL]],
[IRoles.MODERATOR, [IPermissions.READ, IPermissions.WRITE, IPermissions.UPDATE],
[IRoles.USER , [IPermissions.READ, IPermissions.WRITE]],
[IRoles.BLACK_USER, [IPermissions.READ]],
])
const currentUserPermissions = ROLES_PERMISSIONS.get(currentUser.role)
<div v-if="currentUserPermissions.includes(ROLES_PERMISSIONS.DELETE)">some content</div>
enum IRores {
ADMIN = 'admin',
USER = 'user'
}
<div v-if="currentUser.role === IRoles.ADMIN"></div
<div :v-role="[IRoles.ADMIN]"></div
const switcher = ref(widget.active)
const emits = defineEmits<{
(e: 'editWidget', param: any) : void
}>()
<el-switch size="small" v-model="switcher" inline-prompt/>
watch(switcher , () => {
emits('editWidget', switcher.value)
})
@import file-with-media from './'
... а потом тут переопределены стили контейнеров которые подпадают под медиа запросы
Покрутив ваши варианты так и сяк, я не смог решить проблему, однако, ваши рассуждения подтолкнули меня на верный путь, и в конце концов я закрыл вопрос.
Суть в том, что когда мы регистрируем плагин, у нас есть доступ к объекту app и мы можем им управлять как нам нужно. В моём же случае, в функции defineConfig нет доступа до этого объекта, и контекст приложения не получается переопределить в родителе.
делать так я не стал, поскольку не уверен в надежности этого метода для разных браузеров.
Мое решение на текущий момент переопределять конфиг до момента mount приложения в main файле.
Таким образом оно работает как нужно и проблем нет.. за исключением того, что хотелось бы конфиг всё таки вместе с функцией вынести в отдельный файл.
Возможно я решу эту проблему созданием отдельного плагина именно для конфигурации, и интегрирую его в библиотеку. Тогда появится возможность сделать так:
Если у вас появились мысли на этот счет, буду рад выслушать. Через день или два отмечу ответ "верным решением".
Спасибо.