没长正的技术专栏 勤动手、多思考

开发工具之VSCode

2013-05-04

阅读:

2022-04-22

前端开发工具

官网:https://code.visualstudio.com/

1. VSCode 插件

1.1 一般安装 git

项目管理

1.2 Eslint 插件

格式校验

1.3 Prettier插件

格式化代码

1.4 Vetur插件

格式化CSS、VUE等代码插件

1.5 material 主题

2. 快捷设置

一般主题设置:文件 -> 首选项 -> 颜色主题

{
  // 编辑器建议 显示在头部
  "editor.snippetSuggestions": "top",
  "editor.suggestSelection": "first",
  "editor.fontSize": 16,
  // "terminal.integrated.fontFamily": "monospace",
  "debug.console.fontSize": 14,
  "terminal.integrated.fontSize": 14,
  "search.enableSearchEditorPreview": true,
  "workbench.colorTheme": "Solarized Dark",
  "update.mode": "none",
  "explorer.confirmDelete": false, // 表示窗口缩小.
  "editor.wordWrap": "on", // 超长代码一般出现在html中, 我不喜欢html属性换行, 但是又想看到全部, 那就只能设置编辑器视觉上的换行了.
  "editor.wordWrapColumn": 140,
  "workbench.editor.enablePreview": false,

  //界面配置路径 Text Editor -> Files
  // "files.autoSave": "afterDelay", //设置延迟一定的时间后自动保存文件
  // "files.autoSaveDelay": 1000, // 设置自动保存文件前需要延迟的时间,单位毫秒 默认1000
  "files.enableTrash": true, // 设置删除文件、目录时是否允许删除到操作系统回收站,默认为true,即允许
  "files.encoding": "utf8", // 设置读写文件时所用编码 默认UTF-8,可针对每种语言进行设置
  "files.autoGuessEncoding": false, // 设置打开文件时,是否自动猜测字符编码,默认false,即不自动猜测,可针对每种语言进行设置
  // 界面配置路径 Text Editor -> Formatting
  "editor.formatOnSaveMode": "file", // 设置保存文件时格式化整个文件还是仅被修改处。该配置项仅在 "editor.formatOnPaste"  true时生效
  "editor.formatOnPaste": false, // 设置黏贴内容时是否自动格式化,true表示自动格式化,需要配置格式化器(formatter)才可使用
  "editor.formatOnSave": true, // 设置保存文件时是否自动格式化,true表示自动格式化,需要配置格式化器(formatter)才可使用
  "editor.formatOnType": false, // 设置输入完成后是否自动格式化当前行
  // Eslint插件配置
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true // 设置保存时是否自动修复代码
  },
  // 界面配置路径 Extensiosn -> ESlint
  "eslint.alwaysShowStatus": true, // 设置状态栏是否一直显示ESlint图标项,true表示一直显示
  "eslint.format.enable": true, // 设置是否把ESlint作为一个格式化器,true表示启用
  // Prettier插件配置
  // 界面配置路径 Extensiosn -> Prettier
  "prettier.enable": true, // 设置是否开启prettier插件,默认为true,即开启
  "prettier.semi": true, // 设置是否在每行末尾添加分号,默认为 true
  "prettier.singleQuote": true, // 设置格式化时,保持单引号,如果设置为true,则单引号会自动变成双引号
  "prettier.tabWidth": 2, // 设置每个tab占用多少个空格
  "prettier.useTabs": false, // 设置是否使用tab键缩进行,默认为false,即不使用
  "prettier.bracketSpacing": true, // 在对象,括号与文字之间加空格 true - Example: { foo: bar }   false - Example: {foo: bar} 默认为true
  "prettier.jsxBracketSameLine": true, // 设置在jsx中,是否把'>' 单独放一行,默认为false,即单独放一行
  // 设置各种代码的默认格式化器//以下为默认配置
  "prettier.eslintIntegration": true,
  "[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[css]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[less]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  /* "[typescript]": {
      "editor.defaultFormatter": "vscode.typescript-language-features"
    }, */
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[vue]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },

  // Vetur插件配置
  "vetur.format.enable": false, // 设置是否禁用插件格式化功能 // 默认为true,即开启
  "vetur.format.defaultFormatter.css": "prettier", // 设置css代码(<style>包含的代码块)默认格式化器
  "vetur.format.defaultFormatter.sass": "sass-formatter",
  "vetur.format.defaultFormatter.postcss": "prettier",
  "vetur.format.defaultFormatter.scss": "prettier",
  "vetur.format.defaultFormatter.less": "prettier",
  "vetur.format.defaultFormatter.stylus": "stylus-supremacy",
  "vetur.format.defaultFormatter.html": "prettier", // 设置html代码(<template>包含的代码块)默认格式化器
  "vetur.format.defaultFormatter.js": "prettier-eslint", // 设置js代码<script>包含的代码块)默认格式化器
  "vetur.format.defaultFormatter.ts": "prettier", // 设置vetur默认使用 prettier格式化代码
  "vetur.format.options.tabSize": 2, // 设置tab键占用的空格数,该配置将被所有格式化器继承
  "vetur.format.options.useTabs": false, // 设置是否使用tab键缩进 默认false,即不使用,该配置将被所有格式化器继承
  //"vetur.ignoreProjectWarning": true // 控制是否忽略关于vscode项目配置错误的告警,默认为false,即不忽略
  "vetur.validation.template": false, // VUE3专用

  "emmet.syntaxProfiles": {
    "vue-html": "html",
    "vue": "html"
  },
  "editor.fontLigatures": true,
  "editor.quickSuggestions": {
    //开启自动显示建议
    "other": true,
    "comments": true,
    "strings": true
  },
  // vscode默认启用了根据文件类型自动设置tabsize的选项
  "editor.detectIndentation": false,
  // 重新设定tabsize
  "editor.tabSize": 2,
  "search.exclude": {
    "**/node_modules": true,
    "**/bower_components": true,
    "**/dist": true
  },
  // vscode 程序title位置显示内容,这里设置了显示路径
  "window.title": "${dirty}${activeEditorMedium}${separator}${rootName}",
  "fileheader.customMade": {
    "Author": "FengXiao",
    "Date": "Do not edit",
    "LastEditors": "FengXiao",
    "LastEditTime": "Do not edit"
  },
  "fileheader.configObj": {
    "autoAdd": false
  },
  "html.format.wrapLineLength": 150,
  "javascript.preferences.quoteStyle": "single",
  "json.format.enable": false,
  "editor.suggest.snippetsPreventQuickSuggestions": false,
  "eslint.validate": ["vue", "javascript", "javascriptreact"],
  "typescript.tsc.autoDetect": "off",
  "editor.formatOnSaveTimeout": 300,
  "wxmlConfig.onSaveFormat": true,
  "html.format.enable": false,
  "javascript.format.enable": false,
  "typescript.implementationsCodeLens.enabled": false,
  "typescript.format.enable": false,
  "editor.unicodeHighlight.allowedLocales": {
    "zh-hans": true
  },
  "window.zoomLevel": -1,
  "editor.bracketPairColorization.enabled": true,
  "editor.guides.bracketPairs": "active",
  "files.exclude": {
    "**/.classpath": true,
    "**/.project": true,
    "**/.settings": true,
    "**/.factorypath": true
  }
  // "javascript.suggestionActions.enabled": false
}

3. 优化

3.1 压缩

前端打包时压缩(分块)为gzip,通过nginx转发,访问速度更快。 【2022.04.21】

参考Ruoyi项目 -> vue.config.js

config
.when(process.env.NODE_ENV !== 'development',
      config => {
    config
        .plugin('ScriptExtHtmlWebpackPlugin')
        .after('html')
        .use('script-ext-html-webpack-plugin', [{
            // `runtime` must same as runtimeChunk name. default is `runtime`
            inline: /runtime\..*\.js$/
        }])
        .end()
    config
        .optimization.splitChunks({
        chunks: 'all',
        cacheGroups: {
            libs: {
                name: 'chunk-libs',
                test: /[\\/]node_modules[\\/]/,
                priority: 10,
                chunks: 'initial' // only package third parties that are initially dependent
            },
            elementUI: {
                name: 'chunk-elementUI', // split elementUI into a single package
                priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
                test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
            },
            commons: {
                name: 'chunk-commons',
                test: resolve('src/components'), // can customize your rules
                minChunks: 3, //  minimum common number
                priority: 5,
                reuseExistingChunk: true
            }
        }
    })
    config.optimization.runtimeChunk('single'),
     {
        from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
        to: './' //到根目录下
    }
})
}

参考文档

高效图表

菜鸟教程Markdown

Markdown高级技巧

Markdown 中设置文本字体为红色(改变字体颜色)的方法

成功=思维方式×热情×能力。

Similar Posts

欢迎拍砖,多多交流,转载请注明出处:[没长正的技术专栏](http://blog.meizhangzheng.com) 如涉及侵权问题,请发送邮件到xsj34567@163.com,如情况属实本人将会尽快删除。


Comments