最近2周时间从事小程序开发,其代码风格同样需要配套设置,而配置与一般Web开发还是有些许区别,这里Mark下。
配置文件所在位置
小程序项目默认如下,因此package.json/eslint等配置的根目录在miniprogram
下,并非在项目根目录下。
eslint
.eslintignore
1 2 3
| node_modules miniprogram_npm **/*.wxml
|
注意
- wxml作为HTML对待,因此这里对于ES风格需要去掉对wxml的影响
.eslintrc.js
1 2 3 4 5 6 7 8 9 10
| globals: { App: true, Page: true, Component: true, Behavior: true, wx: true, getApp: true, getCurrentPages: true, __wxConfig: true, }
|
增加全局变量声明,这样IDE下使用并不会提醒报eslint --no-undef
错,
.prettierrc.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| module.exports = { printWidth: 120, tabWidth: 2, useTabs: false, semi: true, singleQuote: true, quoteProps: 'as-needed', trailingComma: 'es5', bracketSpacing: true, arrowParens: 'always', htmlWhitespaceSensitivity: 'css', endOfLine: 'lf', overrides: [ { files: '*.wxml', options: {parser: 'html'}, }, { files: '*.wxss', options: {parser: 'css'}, }, { files: '*.wxs', options: {parser: 'babel'}, }, ], };
|
对于wxml/wxss采用不同的转译器,从而确保风格处理的正确。
lint-staged
1 2 3 4 5 6 7 8
| "lint-staged": { "**/*.{js,wxs}": [ "eslint --fix" ], "**/*.{wxml}": [ "prettier --write" ] }
|
对于JS采用eslint风格处理,而对于wxml采用prettier。
需要注意,eslint配置中有prettier插件,因此最终JS其实也会经过prettier处理,因此如上并没有明确的调用处理。
写在最后
代码风格并非仅仅是统一代码颜值,更多是统一最佳实践,从而规避一些常见错误。so,重视起来。