forked from iod/cpnode-front
feat: switch to SCSS and add Stylelint
This commit is contained in:
parent
6382f68efd
commit
808ee93613
8
.fes.js
8
.fes.js
@ -1,4 +1,5 @@
|
|||||||
// .fes.js 只负责管理编译时配置,只能使用plain Object
|
// .fes.js 只负责管理编译时配置,只能使用plain Object
|
||||||
|
import StylelintPlugin from 'stylelint-webpack-plugin'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
publicPath: './',
|
publicPath: './',
|
||||||
@ -30,4 +31,11 @@ export default {
|
|||||||
['1', '有效的'],
|
['1', '有效的'],
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
chainWebpack(config) {
|
||||||
|
config.plugin('stylelint').use(StylelintPlugin, [
|
||||||
|
{
|
||||||
|
extensions: ['css', 'scss', 'vue', 'tsx'],
|
||||||
|
},
|
||||||
|
])
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
25
.stylelintrc.js
Normal file
25
.stylelintrc.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
const commonExtends = ['stylelint-config-property-sort-order-smacss']
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
ignoreFiles: 'src/{.fes,.fes-production}/**/*',
|
||||||
|
extends: commonExtends,
|
||||||
|
rules: {
|
||||||
|
'order/properties-alphabetical-order': null,
|
||||||
|
'color-named': 'always-where-possible',
|
||||||
|
'selector-max-id': 1,
|
||||||
|
},
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: 'src/**/*.css',
|
||||||
|
extends: ['stylelint-config-recommended', ...commonExtends],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: 'src/**/*.scss',
|
||||||
|
extends: ['stylelint-config-recommended-scss', ...commonExtends],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: 'src/**/*.vue',
|
||||||
|
extends: ['stylelint-config-recommended-vue/scss', ...commonExtends],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
2064
package-lock.json
generated
2064
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
20
package.json
20
package.json
@ -4,14 +4,16 @@
|
|||||||
"description": "A fes.js + TypeScript starter template",
|
"description": "A fes.js + TypeScript starter template",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "fes build",
|
"build": "fes build",
|
||||||
"prod": "FES_ENV=prod fes build",
|
"prod": "cross-env FES_ENV=prod fes build",
|
||||||
"analyze": "ANALYZE=1 fes build",
|
"analyze": "cross-env ANALYZE=1 fes build",
|
||||||
"dev": "fes dev",
|
"dev": "fes dev",
|
||||||
"test:unit": "fes test:unit",
|
"test:unit": "fes test:unit",
|
||||||
"lint": "npm run eslint && npm run stylelint",
|
"lint": "npm run eslint && npm run stylelint",
|
||||||
"lint:fix": "npm run eslint:fix && npm run stylelint:fix",
|
"lint:fix": "npm run eslint:fix && npm run stylelint:fix",
|
||||||
"eslint": "npx eslint src/**/*.{js,ts,tsx,vue}",
|
"eslint": "eslint src/**/*.{js,ts,tsx,vue}",
|
||||||
"eslint:fix": "npx eslint src/**/*.{js,ts,tsx,vue} --fix"
|
"eslint:fix": "eslint src/**/*.{js,ts,tsx,vue} --fix",
|
||||||
|
"stylelint": "stylelint src/**/*.{css,scss,vue,tsx}",
|
||||||
|
"stylelint:fix": "stylelint src/**/*.{css,scss,vue,tsx} --fix"
|
||||||
},
|
},
|
||||||
"prettier": "@daotl/prettier-config",
|
"prettier": "@daotl/prettier-config",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
@ -38,7 +40,15 @@
|
|||||||
"@daotl/eslint-config-vue": "0.2.3",
|
"@daotl/eslint-config-vue": "0.2.3",
|
||||||
"@daotl/prettier-config": "^0.1.2",
|
"@daotl/prettier-config": "^0.1.2",
|
||||||
"@daotl/tsconfig": "^0.0.4",
|
"@daotl/tsconfig": "^0.0.4",
|
||||||
"@vue/compiler-sfc": "^3.2.26"
|
"@fesjs/plugin-sass": "^2.0.0",
|
||||||
|
"@vue/compiler-sfc": "^3.2.26",
|
||||||
|
"cross-env": "^7.0.3",
|
||||||
|
"postcss-html": "^1.3.0",
|
||||||
|
"stylelint": "^14.2.0",
|
||||||
|
"stylelint-config-property-sort-order-smacss": "^8.0.0",
|
||||||
|
"stylelint-config-recommended-scss": "^5.0.2",
|
||||||
|
"stylelint-config-recommended-vue": "^1.1.0",
|
||||||
|
"stylelint-webpack-plugin": "^3.1.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fesjs/fes": "^2.0.11",
|
"@fesjs/fes": "^2.0.11",
|
||||||
|
@ -9,14 +9,14 @@ import Spin from 'ant-design-vue/lib/spin'
|
|||||||
import 'ant-design-vue/lib/spin/style/css'
|
import 'ant-design-vue/lib/spin/style/css'
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style scoped lang="scss">
|
||||||
.page-loading {
|
.page-loading {
|
||||||
|
display: flex;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
display: flex;
|
left: 0;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
@ -9,9 +9,9 @@ import type { State } from '~/app'
|
|||||||
const initialState = useModel('@@initialState') as State
|
const initialState = useModel('@@initialState') as State
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scope>
|
<style scope lang="scss">
|
||||||
.right {
|
.right {
|
||||||
text-align: right;
|
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
|
text-align: right;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
1
src/global.scss
Normal file
1
src/global.scss
Normal file
@ -0,0 +1 @@
|
|||||||
|
// Global style
|
Loading…
Reference in New Issue
Block a user