导航:首页 > 文件管理 > vscode中vue各个配置文件

vscode中vue各个配置文件

发布时间:2024-07-31 15:36:40

1. github鐨剉ue椤圭洰鎬庝箞鍦╲scode杩愯

鎵撳紑config/index.js骞舵壘鍒癲evtool灞炴с
鐢ㄦ湰鍦癵it瀹㈡埛绔灏唙ue椤圭洰浠巊ithub鍏嬮殕鍒版湰鍦帮紝鐢╲scode鎵撳紑锛屽畬鎴愮紪杈戙傚湪vscode閲屾柊鎵撳紑涓闂蜂憨涔庝釜鍛戒护琛岀粓绔鑰愯厞锛屽湪缁堢绐楀彛閲屼娇鐢╲ue瀵瑰簲鐨勮剼鎵嬫灦鍛戒护鍚鍔ㄩ」鐩銆
閫氳繃蹇鎹锋柟寮忔墦寮VisualStudioCode宸ヨ殏鎮夊叿锛岀劧鍚庢柊寤洪潤鎬侀〉闈銆傚垱寤轰竴涓闈欐侀〉闈table.html锛屽苟娣诲姞椤甸潰浠g爜锛岀劧鍚庝繚瀛橈紝浣跨敤娴忚堝櫒鏌ョ湅銆傜偣鍑籉ile鑿滃崟锛岄夋嫨OpenFolder锛屽皢椤圭洰瀵煎叆鍒癡isualStudioCode銆

2. 如何优雅地使用 VSCode 来编辑 vue 文件

先来扒一扒使用 PHPStorm 遇到的问题:
vue文件虽然可以通过插件来解决高亮问题,但是 <script> 标签中的 ES6 代码的识别老是出问题,箭头函数有的时候能正确识别,有的时候会报错
无法正确识别 vue 文件中的 jsx 语法
无法正确识别和高亮 vue 文件 <style> 标签中使用的 less 语法
vue文件中 <template> 部分使用了大量的自定义标签(自定义组件)和自定义属性,会报一堆 warning
经常性卡死
webpack实时编译的错误不能直接展示在代码编辑器内,还得自己到控制台中查看
如何安装 vscode
很简单,传送门: 官网下载安装
第一步,要支持 vue 文件的基本语法高亮
这里,我试过好3个插件: vue , VueHelper 和 vetur ,最终选择使用 vetur 。
安装插件: Ctrl + P 然后输入 ext install vetur 然后回车点安装即可。
p.s: vscode 的插件安装比 PHPStorm 的插件安装更快捷方便,安装完成后还不用重启整个程序,只要重新加载下工作区窗口就可以了。
安装完 vetur 后还需要加上这样一段配置下:
"emmet.syntaxProfiles": {
"vue-html": "html",
"vue": "html"
}
这时可以打开一个vue文件试试,注意下右下角状态栏是否正确识别为 vue 类型:
如果被识别为 text 或 html ,则记得要点击切换下。
第二步,要支持 vue 文件的 ESLint
可能还有人会问为什么要 ESLint ?没有 lint 的代码虽然也可能可以正确运行,但是 lint 作为编译前的一道检测成本更小,而且更快。此外, ESLint 还有很多规范是帮助我们写出更加优雅而不容易出错的代码的。
jshint 本来也是个不错的选择,但是 ESLint 对 jsx 的支持让我还是选择了 ESLint.
安装插件: Ctrl + P 然后输入 ext install eslint 然后回车点安装即可。
ESLint 不是安装后就可以用的,还需要一些环境和配置:
首先,需要全局的 ESLint , 如果没有安装可以使用 npm install -g eslint 来安装。
其次,vue文件是类 HTML 的文件,为了支持对 vue 文件的 ESLint ,需要 eslint-plugin-html 这个插件。可以使用 npm install -g eslint-plugin-html 来安装
接着,安装了 HTML 插件后,还需要在 vscode 中配置下 ESLint:
"eslint.validate": [
"javascript",
"javascriptreact",
"html",
"vue"
],
"eslint.options": {
"plugins": ["html"]
},
最后,别忘了在项目根目录下创建 .eslintrc.json , 如果还没创建,还可以使用下面快捷命令来创建:
这样一来 vue 中写的 js 代码也能正确地被 lint 了。
要是不小心少个括号之类的都可以有对应的报错:
多余 import 也都能报错:
还是蛮智能的。
第三步,配置构建任务
vue 项目的构建我选择用 webpack ,不过,并不是直接使用命令行下的 webpack 而是使用了 webpack 的 API 写的 node 脚本。 脚本主要有两个,一个是 build/bin/build.js 另一个是 build/bin/watch.js 分别是单次构建和实时构建。
于是乎,对应 vscode 中的 tasks 也是有两个: build 和 watch ,简单配置如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
// use `Ctrl+P` and type `task` + SPACE + <taskName> to run a task
"version": "0.1.0",
"tasks": [
{
"taskName": "build",
"echoCommand": true,
"command": "node",
"args": [
"build/bin/build.js"
],
"suppressTaskName": true,
"isBuildCommand": true
},
{
"taskName": "watch",
"echoCommand": true,
"command": "node",
"args": [
"build/bin/watch.js"
],
"suppressTaskName": true,
"isBackground": true
}
]
}
这样配置好后,按 Ctrl + Shift + B 即可开始单次构建。 不过单次构建比较慢(要10秒+),一般我都用实时构建: Ctrl + P 然后输入 task watch <回车> 即可开始实时构建。实时构建除了第一次比较慢,其他时候还是非常快的,一般1秒内就可以构建好。
最后,webpack 构建错误提示
webpack 构建失败后一般都会有错误提示,会显示在输出窗口中:
为啥是彩色的? 因为装了 Output Colorizer 这个插件。
当然,这样还是不够方便 -- 实时构建是后台运行的,“输出”窗口一般也都是在后台,每次保存完文件还得点开岂不麻烦。
要是能做到像 ESLint 一样直接把错误标到编辑器上面就好了。真的可以吗?翻了下 vscode 的文档,发现有神奇的 problemMatcher -- 可以对任务输出进行解析,解析出的问题会显示在“问题”窗口中,如果还有文件名行号和列号,则会在源代码编辑窗口中对应的位置标出来。
先放个最终效果:
在这个文件的第32行,import 了一个不存在的模块,这样的错误在 ESLint 中当然是检查不出来的,然而在 webpack 的实时构建中会报错:
这个事情的困难在于两点:
如何通过 problemMatcher 把这个错误给抓出来?
如何找到错误对应的行号?(如果可能的话,还有列号)
webpack的错误输出格式并不是完全统一的,而且有些还没有行号 -- 一方面可能是 webpack 的 bug ,另一方面 vue 文件在构建的时候会拆成 template, script 和 style 三个方面进行构建,报错的行号可能对不上。
最终我的解决方案是对 webpack 的错误重新格式化输出,然后匹配:
首先,重新格式化输出需要 format-webpack-stats-errors-warnings 这个包(偶新写的)
npm install --save-dev format-webpack-stats-errors-warnings
然后,到 build/bin/build.js 和 build/bin/watch.js 中在 webpack 构建完成的回调函数中增加这个格式化后的输出:
更多使用介绍见 github
最后,在 .vscode/tasks.json 中,每个任务下添加 problemWatcher :
// ...
{
"taskName": "build",
// ...
// build 任务的:
"problemMatcher": {
"owner": "webpack",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^!>(\\w+): (\\S+)?:(\\d+),(\\d+)(?:~(?:(\\d+),)?(\\d+))?: (.*)$",
"severity": 1,
"file": 2,
"line": 3,
"column": 4,
"endLine": 5,
"endColumn": 6,
"message": 7
}
}
}
{
"taskName": "watch",
// ...
// watch 任务的:
"problemMatcher": {
"owner": "webpack",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^!>(\\w+): (\\S+)?:(\\d+),(\\d+)(?:~(?:(\\d+),)?(\\d+))?: (.*)$",
"severity": 1,
"file": 2,
"line": 3,
"column": 4,
"endLine": 5,
"endColumn": 6,
"message": 7
},
"watching": {
"activeOnStart": true,
"beginsPattern": "^\\s*Webpack begin run",
"endsPattern": "^\\s*Build complete at"
}
}
// ...
}
// ...
注:在 watch 任务中,为了匹配何时开始和何时结束,我在 webpack 构建的 run 和 watch 时增加了一个 console.log('Webpack begin run') 的打印,而在构建完成后增加了一个 console.log("Build complete at ..") 的打印。

3. 鐢╲scode寮鍙憊ue锛屾湁寰堝氭姤绾锛屽疄闄呬笂娌℃湁閿欒锛屽彲浠ユe父鍚鍔锛

杩欑嶆儏鍐甸氬父鏄鍥犱负VSCode鐨勬彃浠舵垨鑰呴厤缃涓嶆g‘锛屽艰嚧瀵筕ue椤圭洰鐨勮娉曟鏌ユ湁璇銆傝峰皾璇曚互涓嬫ラゆ潵瑙e喅杩欎釜闂棰橈細

mole.exports = {

root: true,

env: {

node: true,

},

extends: [

'plugin:vue/vue3-essential',

'eslint:recommended',

],

parserOptions: {

parser: 'babel-eslint',

},

rules: {

'no-console': process.env.NODE_ENV === 'proction' ? 'warn' : 'off',

'no-debugger': process.env.NODE_ENV === 'proction' ? 'warn' : 'off',

},

};

{

"eslint.validate": [

"javascript",

"javascriptreact",

{

"language": "vue",

"autoFix": true

}

],

"vetur.validation.template": true,

"vetur.validation.script": true,

"vetur.validation.style": true

}

4. vue VSCode 寮鍙戣剧疆锛坔tml鑷鍔ㄨˉ鍏ㄣ乪slint淇濆瓨鏃舵牸寮忓寲銆乿etur 鏍煎紡鍖杊tml锛

File -> Preference -> Setting ->鎼滅储setting.json -> Edit in settings.json
settings.json

鏂规硶1锛欶ile -> Preference -> Setting ->鎼滅储setting.json -> Edit in settings.json
settings.json
Setting.json

鏂规硶2锛欶ile -> Preference -> 鎼滅储妗嗚緭鍏ワ細琛岃宖iles.autoSave
涔嬪悗鑳界湅鍒 files.autoSave 鐨勫彲閫夐」鏈
off : 鍏抽棴鑷鍔ㄤ繚瀛橈紙榛樿わ級
afterDelay: 寤惰繜xx鏃堕棿鍚庝繚瀛橈紝鍙鍦 "files.autoSaveDelay" 涓閰嶇疆寤惰繜鏃堕棿锛
onFocusChange: 缂栬緫鍣ㄥけ鍘荤劍鐐规椂鑷鍔ㄤ繚瀛橈紱
onWindowChange: 绐楀彛澶卞幓鐒︾偣鏃(缂栬緫鍣ㄧ獥鍙g殑鍒囨崲锛屾岄潰绐楀彛鐨勫垏鎹)鑷鍔ㄤ繚瀛橈紱

瀹夎 ESLint https://cn.eslint.org/

vscode 涓瀹夎 ESLint 鎻掍欢

鐒跺悗閰嶇疆 vscode 鐨 setting.json

File -> Preference -> User Snippers
vue.json鏂囦欢锛岀劧鍚庢坊鍔犱笅闈㈡ā鏉

鐒跺悗鏂板缓.vue鏂囦欢 锛屽啓涓媣ue鐒跺悗Tap閿灏辫兘鐢熸垚浠涔堢殑閫楃熸ā鏉裤
濡傛灉娌℃湁鐢熸垚妯℃澘鍙鏄澶氫簡涓绌烘牸鎴栬呯敓鎴愮殑鏄痸ue鏍囩剧殑璇濓紝鎴戜滑杩樺緱璁剧疆涓涓嬶紝鎵撳紑settings.json锛屾坊鍔犱笅闈㈢殑璁剧疆

濡傛灉浣犵殑Setting.json鏂囦欢灞卞甫鍏嗘湁 "files.associations" 璁剧疆鐨勮瘽锛岃峰垹闄わ紝鍥犱负浠栦細鍜屼笂闈 emmet.syntaxProfiles 鍐茬獊銆
files.associations 鍜 emmet.syntaxProfiles 閮芥槸璁剧疆html 鏍囩剧殑琛ュ叏锛屽傛灉鏄瑕佺敤.vue妯℃澘琛ュ叏鍔熻兘鐨勮瘽锛宧tml鏍囩捐ˉ鍏ㄦ垜浠灏辩敤 emmet.syntaxProfiles 鏉ヨ剧疆銆

vue 鐨勫紑鍙戜腑 vscode 鍙瑁呯敤浜庡紑鍙戣勮寖鐨勬彃浠舵湁
Prettier 锛氳勮寖js
ESLint: 瑙勮寖js
Vuter: 瑙勮寖 .vue 鏂囦欢涓 template
stylus: 瑙勮寖 stylus

娉ㄦ剰锛氫互涓嬮厤缃鏄鍩轰簬鎺ヤ笅鏉ヤ粙缁嶇殑鎻掍欢璁剧疆鐨勶紝濡傛灉娌℃湁瀹夎呮彃浠舵槸涓嶄細鐢熸晥鐨勩

鎴栬咃細

鍏朵腑锛

4.濡傛灉浣跨敤浜唖tylus锛岄偅涔坴scode瀹夎卻tylus鎻掍欢锛岃繘琛岃剧疆锛屼笉閫傜敤鍐掑彿鍙屽紩鍙峰ぇ鎷鍙

鏍圭洰褰曚笅鍒涘缓eslint瑙勫垯鏂囦欢 .eslintrc.js
锛堜笅闈browsers 澶氫簡s 姝g‘鐨勪负 browser 锛

5. vsCode涓缂栧啓vue椤圭洰鏃讹紝webpack閰嶇疆鐨刟lias鍒鍚嶆棤鏁

1銆乿sCode宸ュ叿閰嶇疆锛坰ettings.json鏂囦欢閰嶇疆鎵鏈夐」鐩鍙鐢锛

瑙e喅鏂规堜竴锛

鍦ㄦ彃浠跺競鍦轰腑瀹夎匬ath Intellisense鎻掍欢骞跺惎鐢ㄣ傛牴鎹浠ヤ笅鎻愮ず淇℃伅锛屼慨鏀箆sCode閰嶇疆鏂囦欢settings.json鏂囦欢锛

瑙e喅鏂规堜簩锛

鍦ㄦ彃浠跺瓭鍨嬬尽甯傚満涓瀹夎匬ath Autocomplete鎻掍欢骞跺惎鐢ㄣ傛牴鎹浠ヤ笅鎻愮ず淇℃伅锛屼慨鏀箆sCode閰嶇疆鏂囦欢settings.json鏂囦欢锛

2銆侀」鐩閰嶇疆

濡傞」鐩闇瑕佸崟鐙閰嶇疆锛屽彲鏍规嵁浠ヤ笅鎻愮ず淇℃伅銆傚湪椤圭洰鏍圭洰褰曚腑娣诲姞jsconfig.json鎴杢sconfig.json鏂囦欢锛

鍏蜂綋閰嶇疆濡備笅锛

{

  "compilerOptions": {

    // 椤圭洰鏍硅矾寰

    "baseUrl": "./",

    // 鍒鍚嶆槧灏勮矾寰

    "paths":{

      "@/*": ["宸ф媿src/*"],

      "store/*": ["src/store/moles/*"]

    }

  },

  // 缂栬瘧鏃舵帓闄や互涓嬬洰褰曟枃浠朵娇鐢ㄩ厤缃瑙勫垯

  "exclude": [

    "node_moles",

    "dist"

  ],

  // 缂栬瘧鏃跺寘绉熷眬鍚浠ヤ笅鐩褰曟枃浠朵娇鐢ㄩ厤缃瑙勫垯

  "include": [

    "./src/**/*.vue"

  ]

}

缁撹锛歷sCode宸ュ叿閰嶇疆鍒鍚嶆椂鎺ㄨ崘浣跨敤绗浜岀嶆柟妗堬紙鍥犱负绗涓绉嶄笉澶濂界敤锛

阅读全文

与vscode中vue各个配置文件相关的资料

热点内容
淘宝自适应代码 浏览:970
云计算面试题文件定位路径 浏览:407
电脑蓝屏修工具 浏览:282
红米k40数据线原装多少钱 浏览:939
文件夹选择路径对话框 浏览:691
极客晨星编程什么时候做的 浏览:234
python获取xml文件内容 浏览:957
欧姆龙sfc编程教程 浏览:734
同程旅行App怎么切换账号 浏览:914
微信头像放大另一张 浏览:374
dxf文件名不能有中文吗 浏览:537
一个广义的wpf向导程序对话框 浏览:360
韩国企业网站模板 浏览:268
linux清空目录下的文件命令 浏览:314
全民k歌存在手机哪个文件夹 浏览:546
iphoneios免越狱手机助手 浏览:400
微信js开发教程pdf 浏览:905
at89c51跑马灯程序 浏览:543
windows补丁无法安装程序 浏览:19
linuxoracle双机的集群软件 浏览:308

友情链接