问题
Origin of $log
:
Vue.prototype.$log = console.log
Places to be banned:
<template>
<!-- Place 1 -->
<div @click="$log">
<!-- Place 2 -->
{{ $log }}
<!-- Place 3 -->
{{ $log('foo') }}
</div>
</template>
<script>
import Vue from 'vue'
// Place 4
Vue.prototype.$log('foo')
export default {
created() {
// Place 5
this.$log('foo')
},
}
</script>
Some additional information that might help:
- ESLint - How to restrict property of this
- no-restricted-syntax
- vue/no-restricted-syntax
回答1:
After digging into no-restricted-syntax
, vue/no-restricted-syntax
rules and AST
s, I finally got this working, here're the working rules:
{
rules: {
'no-restricted-syntax': [
'error',
{
selector: '[name=$log]',
message: "Using '$log' is not allowed.",
},
],
'vue/no-restricted-syntax': [
'error',
{
selector: '[name=$log]',
message: "Using '$log' is not allowed.",
},
],
},
}
来源:https://stackoverflow.com/questions/65434989/eslint-vue-how-to-ban-the-use-of-log