Setting Up Vue Dev Environment for Consistent Development Practices
Learn how to configure a development environment that promotes consistency in coding styles and practices in Vue projects.
0 likes
35 views
Rule Content
{ "title": "Setting Up Vue Dev Environment for Consistent Development Practices", "description": "Learn how to configure a development environment that promotes consistency in coding styles and practices in Vue projects.", "category": "Vue Cursor Rules", "rules": [ { "name": "Enforce Component Naming Conventions", "description": "Ensure all Vue components are named using PascalCase to maintain consistency and readability.", "pattern": "components/**/*.vue", "action": "validate", "parameters": { "namingConvention": "PascalCase" } }, { "name": "Validate Prop Definitions", "description": "Require all component props to have defined types and default values to enhance type safety and maintainability.", "pattern": "components/**/*.vue", "action": "validate", "parameters": { "propValidation": true } }, { "name": "Enforce Single Responsibility Principle", "description": "Ensure each component has a single responsibility by limiting the number of methods and data properties.", "pattern": "components/**/*.vue", "action": "validate", "parameters": { "maxMethods": 5, "maxDataProperties": 5 } }, { "name": "Disallow v-if with v-for", "description": "Prevent the use of v-if on the same element as v-for to avoid performance issues.", "pattern": "components/**/*.vue", "action": "validate", "parameters": { "disallowVIfWithVFor": true } }, { "name": "Enforce Template Attribute Order", "description": "Maintain a consistent order of attributes in templates: directives, global attributes, then custom attributes.", "pattern": "components/**/*.vue", "action": "validate", "parameters": { "attributeOrder": ["directives", "global", "custom"] } }, { "name": "Require Component Documentation", "description": "Ensure all components have a JSDoc comment block describing their purpose and usage.", "pattern": "components/**/*.vue", "action": "validate", "parameters": { "requireJSDoc": true } }, { "name": "Limit Computed Property Complexity", "description": "Restrict the complexity of computed properties to improve maintainability.", "pattern": "components/**/*.vue", "action": "validate", "parameters": { "maxComputedComplexity": 10 } }, { "name": "Enforce Consistent Indentation", "description": "Use 2 spaces for indentation across all Vue files to maintain code consistency.", "pattern": "**/*.vue", "action": "format", "parameters": { "indentation": 2 } }, { "name": "Disallow Magic Numbers", "description": "Prohibit the use of magic numbers in code to improve readability and maintainability.", "pattern": "**/*.vue", "action": "validate", "parameters": { "disallowMagicNumbers": true } }, { "name": "Enforce Consistent Event Naming", "description": "Use kebab-case for event names to maintain consistency with HTML attributes.", "pattern": "components/**/*.vue", "action": "validate", "parameters": { "eventNamingConvention": "kebab-case" } } ] }