# vue/define-macros-order
enforce order of
defineEmitsanddefinePropscompiler macros
- 🔧 The
--fixoption on the command line (opens new window) can automatically fix some of the problems reported by this rule.
# 📖 Rule Details
This rule reports the defineProps and defineEmits compiler macros when they are not the first statements in <script setup> (after any potential import statements or type definitions) or when they are not in the correct order.
# 🔧 Options
{
"vue/define-macros-order": ["error", {
"order": ["defineProps", "defineEmits"]
}]
}
order(string[]) ... The order of defineEmits and defineProps macros
# { "order": ["defineProps", "defineEmits"] } (default)
<!-- ✓ GOOD -->
<script setup>
defineProps(/* ... */)
defineEmits(/* ... */)
</script>
<!-- ✗ BAD -->
<script setup>
defineEmits(/* ... */)
defineProps(/* ... */)
</script>
<!-- ✗ BAD -->
<script setup>
const bar = ref()
defineProps(/* ... */)
defineEmits(/* ... */)
</script>
# 🚀 Version
This rule was introduced in eslint-plugin-vue v8.7.0