diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..319299684 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +quote_type = single + +[*.md] +trim_trailing_whitespace = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..bd7e82842 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,9 @@ +# 忽略目录 +node_modules/ +build/ +dist/ + +# 忽略文件 +**/*.min.js +**/*-min.js +**/*.bundle.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..dab7837f3 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: 'eslint-config-ali/typescript/react', +}; diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 000000000..24c5859e6 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,7 @@ +module.exports = { + printWidth: 100, + tabWidth: 2, + semi: true, + singleQuote: true, + trailingComma: 'all', +}; diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 000000000..bec25cf29 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,9 @@ +# 忽略目录 +node_modules/ +build/ +dist/ + +# 忽略文件 +**/*.min.css +**/*-min.css +**/*.bundle.css diff --git a/.stylelintrc.js b/.stylelintrc.js new file mode 100644 index 000000000..74a5a54e3 --- /dev/null +++ b/.stylelintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: 'stylelint-config-ali', +}; diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 000000000..52f3b754b --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ['ali'], +}; diff --git a/package.json b/package.json index 69759e039..27cc99008 100644 --- a/package.json +++ b/package.json @@ -17,14 +17,17 @@ "start": "./scripts/start.sh", "start:server": "./scripts/start-server.sh", "test": "lerna run test --stream", - "test:snapshot": "lerna run test:snapshot" + "test:snapshot": "lerna run test:snapshot", + "xima-scan": "xima scan", + "xima-fix": "xima fix" }, "devDependencies": { "ava": "^1.0.1", "lerna": "^2.11.0", "ts-node": "^7.0.1", "tslib": "^1.9.3", - "typescript": "^3.2.2" + "typescript": "^3.2.2", + "xima": "^0.2.15" }, "engines": { "node": ">=10.0.0" @@ -32,5 +35,15 @@ "tnpm": { "mode": "yarn", "lockfile": "enable" + }, + "husky": { + "hooks": { + "commit-msg": "xima exec commitlint -E HUSKY_GIT_PARAMS", + "pre-commit": "xima exec lint-staged" + } + }, + "lint-staged": { + "**/*.{js,jsx,ts,tsx}": "xima exec eslint", + "**/*.{css,scss,less}": "xima exec stylelint" } -} +} \ No newline at end of file diff --git a/xima.config.js b/xima.config.js new file mode 100644 index 000000000..84185467c --- /dev/null +++ b/xima.config.js @@ -0,0 +1,3 @@ +module.exports = { + eslintType: 'typescript/react', +};