前端开发规范文档(持续更新...)

前端开发规范:命名规范、配置规范--------------------------------------------命名驼峰式命名法介绍PascalCase大驼峰式命名法:首字母大写。eg:StudentInfo、UserInfo、ProductInfoCamelCase小驼峰式命名法:首字母小写。eg:studentInfo、userInfo、productInfo文件资源命名文件名不得含有...

前端开发规范文档(持续更新...)
前端开发规范:命名规范、配置规范--------------------------------------------命名驼峰式命名法介绍
  • Pascal Case 大驼峰式命名法:首字母大写。eg:StudentInfo、UserInfo、ProductInfo

  • Camel Case 小驼峰式命名法:首字母小写。eg:studentInfo、userInfo、productInfo

  • 文件资源命名
  • 文件名不得含有空格

  • 文件名建议只使用小写字母,不使用大写字母。( 例:user )

  • 文件名包含多个单词时,单词之间建议使用半角的连词线 ( - ) 分隔。( 例:user-manage )

  • 引入资源使用相对路径,不要指定资源所带的具体协议 ( http:,https: ) ,除非这两者协议都不可用。
    【不推荐:<script src="http://cdn.com/foundation.min.js"></script> 】
    【 推荐<script src="https://cdn.com/foundation.min.js"></script>】

  • 常量
  • 命名方法 : 全部大写
  • 命名规范 : 使用大写字母和下划线来组合命名,下划线用以分割单词。
    【 例:
    var MAX_COUNT = 10;
    var URL = "http://www.baidu.com"】
  • ESlint

    在vscode 的使用过程中,eslint 会实时检查代码规范;如果一行一行错误信息逐行检查处理,效率极低,且重复劳动,耗时费力,在插件横行的web前端时代,工具带来的好处就是自动化处理,带来强大生产力,那么vscode如何自动处理这类警告信息呢?

    1. 首先为VScode编辑器依次安装

    • ESlint(代码风格校验)、
    • Prettier formatter(代码美化)、
    • Vetur(vue文件格式化)、
    • Local History(本地修改文件记录)、
    • open in browser(文件右键可以直接在浏览器中打开当前文件) 插件;
      在这里插入图片描述
  • 装完后在文件-----》首选项-------》设置里找到并点击 在settings.json中编辑,清空所有内容,添加如下代码:settins.json
  • { "workbench.iconTheme": "vscode-icons", "terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe", //  #让函数(名)和后面的括号之间加个空格 "javascript.format.insertSpaceBeforeFunctionParenthesis": true, // .vue文件template格式化支持,并使用js-beautify-html插件 "vetur.format.defaultFormatter.html": "js-beautify-html", // #让vue中的js按编辑器自带的ts格式进行格式化  "vetur.format.defaultFormatter.js": "vscode-typescript", // js-beautify-html格式化配置,属性强制换行 "vetur.format.defaultFormatterOptions": {  "js-beautify-html": {"wrap_attributes": "force-aligned"// #vue组件中html代码格式化样式  },  "prettier": {"singleQuote": true,"semi": false  } }, // 根据文件后缀名定义vue文件类型 "files.associations": {  "*.vue": "vue" }, "eslint.autoFixOnSave": true, "eslint.validate": [  "javascript",  "javascriptreact",  {"language": "html","autoFix": true  },  {"language": "vue","autoFix": true  } ], "explorer.confirmDelete": false, "git.autofetch": true,  //开启 eslint 支持  "prettier.eslintIntegration": true,  //使用单引号  "prettier.singleQuote": true,  //结尾不加分号 "prettier.semi": false, "sync.gist": "503f49872a81359e494f5f91cee1f536"}
    以下为各文件配置ESlint.js 配置
    module.exports = {  root: true,  parserOptions: { parser: 'babel-eslint', sourceType: 'module'  },  env: { browser: true, node: true, es6: true,  },  extends: ['plugin:vue/recommended', 'eslint:recommended'],  // add your custom rules here  // it is base on https://github.com/vuejs/eslint-config-vue  rules: { "vue/max-attributes-per-line": [2, {"singleline": 10,"multiline": {  "max": 1,  "allowFirstLine": false} }], "vue/singleline-html-element-content-newline": "off", "vue/multiline-html-element-content-newline":"off", "vue/name-property-casing": ["error", "PascalCase"], "vue/no-v-html": "off", 'accessor-pairs': 2, 'arrow-spacing': [2, {'before': true,'after': true }], 'block-spacing': [2, 'always'], 'brace-style': [2, '1tbs', {'allowSingleLine': true }], 'camelcase': [0, {'properties': 'always' }], 'comma-dangle': [2, 'never'], 'comma-spacing': [2, {'before': false,'after': true }], 'comma-style': [2, 'last'], 'constructor-super': 2, 'curly': [2, 'multi-line'], 'dot-location': [2, 'property'], 'eol-last': 2, 'eqeqeq': ["error", "always", {"null": "ignore"}], 'generator-star-spacing': [2, {'before': true,'after': true }], 'handle-callback-err': [2, '^(err|error)$'], 'indent': [2, 2, {'SwitchCase': 1 }], 'jsx-quotes': [2, 'prefer-single'], 'key-spacing': [2, {'beforeColon': false,'afterColon': true }], 'keyword-spacing': [2, {'before': true,'after': true }], 'new-cap': [2, {'newIsCap': true,'capIsNew': false }], 'new-parens': 2, 'no-array-constructor': 2, 'no-caller': 2, 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-class-assign': 2, 'no-cond-assign': 2, 'no-const-assign': 2, 'no-control-regex': 0, 'no-delete-var': 2, 'no-dupe-args': 2, 'no-dupe-class-members': 2, 'no-dupe-keys': 2, 'no-duplicate-case': 2, 'no-empty-character-class': 2, 'no-empty-pattern': 2, 'no-eval': 2, 'no-ex-assign': 2, 'no-extend-native': 2, 'no-extra-bind': 2, 'no-extra-boolean-cast': 2, 'no-extra-parens': [2, 'functions'], 'no-fallthrough': 2, 'no-floating-decimal': 2, 'no-func-assign': 2, 'no-implied-eval': 2, 'no-inner-declarations': [2, 'functions'], 'no-invalid-regexp': 2, 'no-irregular-whitespace': 2, 'no-iterator': 2, 'no-label-var': 2, 'no-labels': [2, {'allowLoop': false,'allowSwitch': false }], 'no-lone-blocks': 2, 'no-mixed-spaces-and-tabs': 2, 'no-multi-spaces': 2, 'no-multi-str': 2, 'no-multiple-empty-lines': [2, {'max': 1 }], 'no-native-reassign': 2, 'no-negated-in-lhs': 2, 'no-new-object': 2, 'no-new-require': 2, 'no-new-symbol': 2, 'no-new-wrappers': 2, 'no-obj-calls': 2, 'no-octal': 2, 'no-octal-escape': 2, 'no-path-concat': 2, 'no-proto': 2, 'no-redeclare': 2, 'no-regex-spaces': 2, 'no-return-assign': [2, 'except-parens'], 'no-self-assign': 2, 'no-self-compare': 2, 'no-sequences': 2, 'no-shadow-restricted-names': 2, 'no-spaced-func': 2, 'no-sparse-arrays': 2, 'no-this-before-super': 2, 'no-throw-literal': 2, 'no-trailing-spaces': 2, 'no-undef': 2, 'no-undef-init': 2, 'no-unexpected-multiline': 2, 'no-unmodified-loop-condition': 2, 'no-unneeded-ternary': [2, {'defaultAssignment': false }], 'no-unreachable': 2, 'no-unsafe-finally': 2, 'no-unused-vars': [2, {'vars': 'all','args': 'none' }], 'no-useless-call': 2, 'no-useless-computed-key': 2, 'no-useless-constructor': 2, 'no-useless-escape': 0, 'no-whitespace-before-property': 2, 'no-with': 2, 'one-var': [2, {'initialized': 'never' }], 'operator-linebreak': [2, 'after', {'overrides': {  '?': 'before',  ':': 'before'} }], 'padded-blocks': [2, 'never'], // 强制使用单引号 quotes: ['error', 'single'], // 强制不使用分号结尾 semi: ['error', 'never'], 'space-before-blocks': [2, 'always'], 'space-before-function-paren': [2, 'never'], 'space-in-parens': [2, 'never'], 'space-infix-ops': 2, 'space-unary-ops': [2, {'words': true,'nonwords': false }], 'spaced-comment': [2, 'always', {'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] }], 'template-curly-spacing': [2, 'never'], 'use-isnan': 2, 'valid-typeof': 2, 'wrap-iife': [2, 'any'], 'yield-star-spacing': [2, 'both'], 'yoda': [2, 'never'], 'prefer-const': 2, 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, 'object-curly-spacing': [2, 'always', {objectsInObjects: false }], 'array-bracket-spacing': [2, 'never']  }}
    .gitignore 配置
    .DS_Storenode_modules/distpackage-lock.json# local env files.env.local.env.*.local.history# Log filesnpm-debug.log*yarn-debug.log*yarn-error.log*# Editor directories and files.idea.vscode*.suo*.ntvs**.njsproj*.sln*.sw?
    源文地址:https://www.guoxiongfei.cn/csdn/4617.html