今天基于vue-cli(2.9.3)构建一个新的项目。我用的sublime,es6的代码格式要与公司格式兼容。采用了vue-cli自带的eslint后,有一些不统一的部分需要修改。先看看sublime里需要怎么处理:

首先,在项目根目录下找到.eslintrc.js,在rules节点下新增两个配置项

// add your custom rules here
rules: {
// allow async-await
'generator-star-spacing': 'off',
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',     // 以下是新增
    // segment mark,默认格式需要再行尾必须加分号
'semi': [2, 'always'],
// 默认空格4个
'indent': ['error', 4, {'SwitchCase': 1}]
}
'semi': [2, 'always'],
// 默认空格4个
'indent': ['error', 4, {'SwitchCase': 1}]
}

现在运行

npm run dev

eslint会按照新的规则去检查代码。问题是,我这个项目里,已经有一些代码写好了,格式是缩进两个空格的。

那么如果手动改,不仅效率低,而且还容易出错。我就想找个插件看一下,是不是有自动格式化的工具。在项目

根目录下,我找到了editorconfig文件,看到其中的indent_size后,我就修改了其中配置indent_size为4

root = true

[*]
charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

那么这个配置文件是干嘛用的呢?我就上网查了,看到说是可以配合各个ide做代码格式化的。我当时在用sublime,就下载了sublime的EditorConfig插件。发现sublime的确是按照新的格式在写代码了,但是旧的代码还是没有给格式化的能力。那么我就不死心了。我就上网查查看sublime的js格式化插件。找了两个:jsFormate,html/css/js Prettify,这两个我都看了,他们对js的格式化,都是基于这个叫js Prettify的插件。所以推荐是用后者,它们也可以通过简单的配置,达到基础的格式化功能。具体做法如下:

下载好插件以后,打开配置文件Prettify Preferences Default,

配置中修改

        // Indentation size
"indent_size": 4, // ... // Should the space before an anonymous function's parens be added, "function()" vs "function ()"
"space_after_anon_function": true,
4, // ... // Should the space before an anonymous function's parens be added, "function()" vs "function ()"
"space_after_anon_function": true,

再打开配置文件Plugin Options - Default, 修改

"allowed_file_extensions": ["htm", "html", "xhtml", "shtml", "xml", "svg", "vue"],"vue"],

这样就可以给.vue格式的文件做格式化了。

但是以为这样就ok了?并不是,发现有个问题,格式化的时候,es6的方法简写会被误认为方法调用:

{
    // 期待的格式化效果
    mounted () {},
    // 实际的格式化效果
    mounted() {}
}

然后看了好多文档,在这个jsPrettify里也没有这个配置可以进行修改。然后就吃午饭去了,中午吃饭听同事说vscode可以解决这个问题。我下午回来就下载了一个,一试,果然不错。

vscode会自动检测我的文件类型,给我推荐插件下载,不需要我再去从网上搜插件,这个功能很人性化。我一打开.vue文件,就推荐了,vetur插件给我用了。我换了一下常用的快捷键,使用起来很方便。但是核心问题是,,,这个格式化,也没有解决刚才的问题,也是少了那个空格。

然后从网上找了找答案,可以这样配置:

在vscode中,打开首选项,设置,搜索vetur.format,再右侧用户设置里,覆写:

"typescript.format.insertSpaceBeforeFunctionParenthesis": true,
"vetur.format.defaultFormatter.js": "vscode-typescript", //默认是prettier
true,
"vetur.format.defaultFormatter.js": "vscode-typescript", //默认是prettier

好了到此,es6方法的语法问题解决了。

然后还有一个问题,就是vue文件中的css部分,语法默认不支持sass,postcss,需要自己配置。我这里用了postcss:

在项目根目录下,找到.postcsssrc.js新增一行如下:

module.exports = {
"plugins": {
"postcss-import": {},
"postcss-url": {},
// to edit target browsers: use "browserslist" field in package.json
"autoprefixer": {},
'postcss-cssnext': {}
}
}
'postcss-cssnext': {}
}
}

如果想用sass可以再webpack的配置文件里进行修改。

然后又一个问题,vscode里,css代码没有高亮,看了一下,需要在.vue文件的style标签里,加入属性:

<style lang="postcss">

然后高亮以后,发现vscode的css格式化,缩进还是两个空格。

这里得说一下,这个缩进是vetur插件做的格式化,它格式化的方式使用的是另外一个插件,叫prettier,如果想要配置prettier,可以在项目根目录下创建一个配置文件:.prettierrc.js

内容如下:

module.exports = {
tabWidth: 4
};

这里说下,prettier的配置功能很少,所以,之前修改es6语法,在prettier里没有配置,就直接换成了typescript去格式化。

这样,整体用下来,vscode上手方便,使用便捷,用户体验好,量级轻,速度也不错。再初始化的时候可以选择你的开发环境,自动给你安装好大部分常用插件。我估计我以后就放不下它了。也同样推荐给爱学习的你。

本文完。

vscode从听说到使用,vetur,prettier,htmljscssPrettify踩坑指南。的更多相关文章

  1. vscode中eslint插件的配置-prettier

    用vue-cli构建vue项目,会有个eslint代码检测的安装 可vscode自带代码格式化是prettier格式(右键有格式化文件或alt+shift+f) 这时候要在vscode上装一个esli ...

  2. vscode 配置踩坑记

    vscode-easy-less 遇到问题最好的解决方式是看官网文档,切记!!! 在web开发当中,经常会写less然后编译成css,当然在VS Code当中也有这样的插件(EasyLess), 但是 ...

  3. flutter笔记1:VScode安装dart code插件踩坑记录

    新手菜鸟一枚,想从产品转入技术坑,目标:移动端APP开发.最近听技术达人 飞狐 说flutter beta发布了,支持跨平台APP开发,各种强大易上手,于是乎零基础入坑~话说想提高英文水平的同学,请移 ...

  4. 踩坑:VScode 集成 eslint 插件

    本文以 Vue 官方脚手架 Vue-cli 为例: 1. 创建 Vue 项目 注意:Vue-cli 默认给出了 eslint 配置,一路回车即可.最后在安装模块的时候,选择直接安装!我用淘宝镜像安装时 ...

  5. VScode+Flutter 开发继续踩坑

    运行慢解决方法1:修改build.gradle,注释掉jcenter(),google().使用阿里的镜像.原因是jcenter google库无法访问到导致的问题.虽然我有万能的爬墙工具,开启全局代 ...

  6. VSCode编译C/C++(一)MinGW安装配置指南

    为什么不用IDE? 更加专业.轻便.其过程对于理解计算机也有更多的帮助 安装过程: 首先进入http://mingw.org/  ,点击右侧最新发布,可以下载,然后安装 点击桌面MinGWInstal ...

  7. vscode 踩坑汇总

    gopls 提示 update 将 "go.useLanguageServer": true 改为 "go.useLanguageServer": false

  8. 百度Apollo搭建步骤(待更新)

    百度Apollo搭建步骤 ##一.安装ubuntu16.04 无需多说,安装完成打开命令行. ##二.下载Apollo镜像 git clone https://github.com/ApolloAut ...

  9. Ubuntu小记

    一. Ubuntu分区记忆 参考教程调整: 1. /boot用于安装grub,设为主分区 2. /根目录20G一般足够 3. /home剩下的给home 4. swap空间=物理内存 挂载点 大小 类 ...

随机推荐

  1. NOIP模拟 15

    因为OJ停机,正好写(tui)个总结(boke) 题解不想写了. 前两题题意没看懂,其实比较简单. 最后一题神仙,想放弃. (迪神貌似又在疯狂骂自己) (我这么辣鸡我...) (下面开始跑题) 这两天 ...

  2. Go组件学习——Web框架Gin

    以前学Java的时候,和Spring全家桶打好关系就行了,从Spring.Spring MVC到SpringBoot,一脉相承. 对于一个Web项目,使用Spring MVC,就可以基于MVC的思想开 ...

  3. phpStudy中MySQL版本升级到5.7.17方法

    本文主要给大家介绍了关于phpStudy中升级MySQL版本到5.7.17的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧.希望能帮 ...

  4. DAGScheduler stage 划分算法

    DAGScheduler stage 划分算法 stage划分算法很重要,对于spark开发人员来说,必须对stage划分算法很清晰,知道自己编写的spark Application被划分成了几个jo ...

  5. 从壹开始 [ Design Pattern ] 之一 ║ 设计模式开篇讲

    缘起 不说其他的没用的开场白了,直接给大家分享三个小故事,都来自于我的读者粉丝(我厚着脸皮称为粉丝吧

  6. 力扣(LeetCode)验证回文串 个人题解

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a c ...

  7. python day 1 homework 2

    多级菜单 1 三级菜单 2 可依次选择进入各子菜单 3 所需新知识点,列表,字典 province_info = {":{"name":"黑龙江", ...

  8. React-基础总结

    使用1. // js文件,第一部引入React(大写,不然保错) import React from 'react' // 创建数组 const arrList = Array.from({lengt ...

  9. Spring的整体架构的认识

    Spring的整体架构的认识 一).spring是用来做什么的? spirng使用基本的JavaBean来完成以前EJB所完成的事. 二).EJB EJB: Enterprise JavaBean, ...

  10. JSON——IT技术人员都必须要了解的一种数据交换格式

    JSON作为目前Web主流的数据交换格式,是每个IT技术人员都必须要了解的一种数据交换格式.尤其是在Ajax和REST技术的大行其道的当今,JSON无疑成为了数据交换格式的首选! 今天大家就和猪哥一起 ...