前端开发工具
官网: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 中设置文本字体为红色(改变字体颜色)的方法
成功=思维方式×热情×能力。