diff --git a/.changeset/fresh-taxis-glow.md b/.changeset/fresh-taxis-glow.md new file mode 100644 index 000000000..580abbd3a --- /dev/null +++ b/.changeset/fresh-taxis-glow.md @@ -0,0 +1,5 @@ +--- +'eslint-plugin-vue': minor +--- + +Changed `vue/valid-define-options` to allow local literal constant references diff --git a/lib/rules/valid-define-options.js b/lib/rules/valid-define-options.js index 12771b8fe..712f1d8e7 100644 --- a/lib/rules/valid-define-options.js +++ b/lib/rules/valid-define-options.js @@ -93,7 +93,13 @@ module.exports = { (def) => def.type !== 'ImportBinding' && utils.inRange(scriptSetup.range, def.name) && - !utils.inRange(defineOptions.range, def.name) + !utils.inRange(defineOptions.range, def.name) && + !( + def.type === 'Variable' && + def.parent.kind === 'const' && + def.node.init && + def.node.init.type === 'Literal' + ) ) ) { if (utils.withinTypeNode(node)) { diff --git a/tests/lib/rules/valid-define-options.js b/tests/lib/rules/valid-define-options.js index 867bcb569..330bc819f 100644 --- a/tests/lib/rules/valid-define-options.js +++ b/tests/lib/rules/valid-define-options.js @@ -74,6 +74,14 @@ tester.run('valid-define-options', rule, { defineOptions(def); ` + }, + { + filename: 'test.vue', + code: ` + ` } ], invalid: [