Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/lemon-socks-follow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'eslint-plugin-vue': patch
---

no-import-compiler-macros: check only in `<script setup>`
10 changes: 8 additions & 2 deletions lib/rules/no-import-compiler-macros.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
*/
'use strict'

const utils = require('../utils')

const COMPILER_MACROS = new Set([
'defineProps',
'defineEmits',
Expand Down Expand Up @@ -43,9 +45,13 @@ module.exports = {
* @returns {RuleListener}
*/
create(context) {
const scriptSetup = utils.getScriptSetupElement(context)
if (!scriptSetup) {
return {}
}
const sourceCode = context.getSourceCode()

return {
return utils.defineScriptSetupVisitor(context, {
ImportDeclaration(node) {
if (node.specifiers.length === 0 || !VUE_MODULES.has(node.source.value))
return
Expand Down Expand Up @@ -96,6 +102,6 @@ module.exports = {
})
}
}
}
})
}
}
3 changes: 2 additions & 1 deletion tests/lib/rules/no-import-compiler-macros.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ tester.run('no-import-compiler-macros', rule, {
filename: 'test.vue',
code: `
<script>
import { defineProps } from 'some-other-package'
// not in <script setup>
import { defineProps } from 'vue'
</script>
`
}
Expand Down