@cgzair/cgz-fabric 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/scripts/install.js +1 -1
- package/package.json +13 -14
package/lib/scripts/install.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))(function(r,s){function c(e){try{o(n.next(e))}catch(e){s(e)}}function l(e){try{o(n.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(c,l)}o((n=n.apply(e,t||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const path_1=__importDefault(require("path")),cgz_core_1=require("@cgzair/cgz-core"),execa_1=__importDefault(require("execa")),fs_extra_1=__importDefault(require("fs-extra")),inquirer_1=__importDefault(require("inquirer")),index_1=require("../constants/index"),extension_1=__importDefault(require("../utils/extension")),generate_template_1=__importDefault(require("../utils/generate-template"));let step=0;const handleEslint=()=>__awaiter(void 0,void 0,void 0,function*(){const{type:e}=yield inquirer_1.default.prompt({type:"list",name:"type",message:`第 ${++step} 步,请选择项目类型:`,choices:index_1.PROJECT_CATEGORYS});return e}),handleStylelint=e=>__awaiter(void 0,void 0,void 0,function*(){const{enable:t}=yield inquirer_1.default.prompt({type:"confirm",name:"enable",message:`第 ${++step} 步,是否启用 stylelint(若没有样式文件则不需要):`,default:e});return t}),handleMarkdownLint=()=>__awaiter(void 0,void 0,void 0,function*(){const{enable:e}=yield inquirer_1.default.prompt({type:"confirm",name:"enable",message:`第 ${++step} 步,是否启用 markdownlint:`,default:!0});return e}),handlePrettier=()=>__awaiter(void 0,void 0,void 0,function*(){const{enable:e}=yield inquirer_1.default.prompt({type:"confirm",name:"enable",message:`第 ${++step} 步,是否启用 Prettier 格式化代码(推荐始终开启):`,default:!0});return e}),removeConflictingDeps=e=>{const t=path_1.default.resolve(e,"package.json");if(!fs_extra_1.default.existsSync(t))return!1;try{const e=JSON.parse(fs_extra_1.default.readFileSync(t,"utf8")),i=e=>!e.startsWith("@cgzair/")&&(!!("eslint"===e||e.startsWith("eslint-")||e.startsWith("@eslint/")||e.includes("eslint-config")||e.includes("eslint-plugin")||e.includes("eslint-formatter")||e.includes("typescript-eslint")||e.startsWith("babel-eslint")||e.startsWith("@babel/eslint-")||"@umijs/lint"===e)||(!!("stylelint"===e||e.startsWith("stylelint-")||e.startsWith("@stylelint/")||e.includes("stylelint-config")||e.includes("stylelint-plugin"))||(!!("prettier"===e||e.startsWith("prettier-")||e.startsWith("@prettier/")||e.includes("prettier-plugin")||e.includes("prettier-config"))||(!!e.includes("markdownlint")
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))(function(r,s){function c(e){try{o(n.next(e))}catch(e){s(e)}}function l(e){try{o(n.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(c,l)}o((n=n.apply(e,t||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const path_1=__importDefault(require("path")),cgz_core_1=require("@cgzair/cgz-core"),execa_1=__importDefault(require("execa")),fs_extra_1=__importDefault(require("fs-extra")),inquirer_1=__importDefault(require("inquirer")),index_1=require("../constants/index"),extension_1=__importDefault(require("../utils/extension")),generate_template_1=__importDefault(require("../utils/generate-template"));let step=0;const handleEslint=()=>__awaiter(void 0,void 0,void 0,function*(){const{type:e}=yield inquirer_1.default.prompt({type:"list",name:"type",message:`第 ${++step} 步,请选择项目类型:`,choices:index_1.PROJECT_CATEGORYS});return e}),handleStylelint=e=>__awaiter(void 0,void 0,void 0,function*(){const{enable:t}=yield inquirer_1.default.prompt({type:"confirm",name:"enable",message:`第 ${++step} 步,是否启用 stylelint(若没有样式文件则不需要):`,default:e});return t}),handleMarkdownLint=()=>__awaiter(void 0,void 0,void 0,function*(){const{enable:e}=yield inquirer_1.default.prompt({type:"confirm",name:"enable",message:`第 ${++step} 步,是否启用 markdownlint:`,default:!0});return e}),handlePrettier=()=>__awaiter(void 0,void 0,void 0,function*(){const{enable:e}=yield inquirer_1.default.prompt({type:"confirm",name:"enable",message:`第 ${++step} 步,是否启用 Prettier 格式化代码(推荐始终开启):`,default:!0});return e}),removeConflictingDeps=e=>{const t=path_1.default.resolve(e,"package.json");if(!fs_extra_1.default.existsSync(t))return!1;try{const e=JSON.parse(fs_extra_1.default.readFileSync(t,"utf8")),i=e=>!e.startsWith("@cgzair/")&&(!!("eslint"===e||e.startsWith("eslint-")||e.startsWith("@eslint/")||e.includes("eslint-config")||e.includes("eslint-plugin")||e.includes("eslint-formatter")||e.includes("typescript-eslint")||e.startsWith("babel-eslint")||e.startsWith("@babel/eslint-")||"@umijs/lint"===e)||(!!("stylelint"===e||e.startsWith("stylelint-")||e.startsWith("@stylelint/")||e.includes("stylelint-config")||e.includes("stylelint-plugin"))||(!!("prettier"===e||e.startsWith("prettier-")||e.startsWith("@prettier/")||e.includes("prettier-plugin")||e.includes("prettier-config"))||(!!e.includes("markdownlint")||!(!e.includes("commitlint")&&"lint-staged"!==e)))));let n=!1;if(["dependencies","devDependencies"].forEach(t=>{e[t]&&Object.keys(e[t]).forEach(r=>{i(r)&&(delete e[t][r],n=!0)})}),n)return fs_extra_1.default.writeFileSync(t,`${JSON.stringify(e,null,2)}\n`,"utf8"),cgz_core_1.log.info("已自动从 package.json 中移除冲突的旧版依赖"),!0}catch(e){cgz_core_1.log.error(`读取或修改 package.json 失败: ${e}`)}return!1},addProjectDeps=(e,t)=>{const i=path_1.default.resolve(e,"package.json");if(!fs_extra_1.default.existsSync(i))return!1;try{const e=JSON.parse(fs_extra_1.default.readFileSync(i,"utf8")),n=(0,cgz_core_1.getCurrentPkg)(path_1.default.resolve(__dirname,"../../"));e.devDependencies=e.devDependencies||{};const r=n.peerDependencies||{},s={},c=e=>{const t=r[e];if(t&&!t.startsWith("workspace:"))return t;try{return`^${require(`${e}/package.json`).version}`}catch(e){return"*"}},l=e=>{try{return require(`${e}/package.json`).peerDependencies||{}}catch(e){return{}}};t.eslint&&(s["@cgzair/eslint-config-cgz"]=c("@cgzair/eslint-config-cgz"),Object.assign(s,l("@cgzair/eslint-config-cgz"))),t.stylelint&&(s["@cgzair/stylelint-config-cgz"]=c("@cgzair/stylelint-config-cgz"),Object.assign(s,l("@cgzair/stylelint-config-cgz"))),t.prettier&&(s["@cgzair/prettier-config-cgz"]=c("@cgzair/prettier-config-cgz"),Object.assign(s,l("@cgzair/prettier-config-cgz"))),t.markdownlint&&(s["@cgzair/markdownlint-config-cgz"]=c("@cgzair/markdownlint-config-cgz"),Object.assign(s,l("@cgzair/markdownlint-config-cgz"))),s["@cgzair/commitlint-config-cgz"]=c("@cgzair/commitlint-config-cgz"),Object.assign(s,l("@cgzair/commitlint-config-cgz"));let o=!1;if(Object.keys(s).forEach(t=>{e.devDependencies[t]!==s[t]&&(e.devDependencies[t]=s[t],o=!0)}),o){const t={};return Object.keys(e.devDependencies).sort().forEach(i=>{t[i]=e.devDependencies[i]}),e.devDependencies=t,fs_extra_1.default.writeFileSync(i,`${JSON.stringify(e,null,2)}\n`,"utf8"),cgz_core_1.log.info("已自动向 package.json 中写入最新的规范依赖包"),!0}}catch(e){cgz_core_1.log.error(`自动向 package.json 写入依赖包失败: ${e}`)}return!1},LOCAL_REGISTRY="http://nexus.it.cgzair.com/repository/npm/",pruneAndInstall=(e,t)=>{if(fs_extra_1.default.existsSync(path_1.default.join(e,"yarn.lock")))return void cgz_core_1.log.error("当前项目使用 yarn,@cgzair/cgz-fabric 仅支持 pnpm(需要 autoInstallPeers 机制自动安装规范依赖),请迁移到 pnpm 后重试。");if(fs_extra_1.default.existsSync(path_1.default.join(e,"package-lock.json")))return void cgz_core_1.log.error("当前项目使用 npm,@cgzair/cgz-fabric 仅支持 pnpm(需要 autoInstallPeers 机制自动安装规范依赖),请迁移到 pnpm 后重试。");const i=t?["--registry",t]:[];t===LOCAL_REGISTRY?cgz_core_1.log.info(`内网模式已开启,将使用内网 Nexus registry:${t}`):t&&cgz_core_1.log.info(`自定义 registry 已设置:${t}`),cgz_core_1.log.info("正在执行 pnpm install(autoInstallPeers 将自动安装规范依赖)...");try{execa_1.default.sync("pnpm",["install",...i],{cwd:e,stdio:"inherit"}),cgz_core_1.log.success("依赖安装完成")}catch(e){cgz_core_1.log.error("自动执行 pnpm install 失败,请稍后手动运行以更新依赖环境。")}};exports.default=(e,t)=>__awaiter(void 0,void 0,void 0,function*(){const i=path_1.default.resolve(e.cwd||process.cwd()),n=e.registry||(e.local?LOCAL_REGISTRY:void 0),r={};process.chdir(i),e.eslint&&index_1.PROJECT_CATEGORYS.some(t=>t.value===e.eslint)?r.eslint=e.eslint:r.eslint=yield handleEslint(),"boolean"==typeof e.stylelint?r.stylelint=e.stylelint:r.stylelint=yield handleStylelint(!/node/.test(r.eslint)),"boolean"==typeof e.markdownlint?r.markdownlint=e.markdownlint:r.markdownlint=yield handleMarkdownLint(),"boolean"==typeof e.prettier?r.prettier=e.prettier:r.prettier=yield handlePrettier(),removeConflictingDeps(i),addProjectDeps(i,r),cgz_core_1.log.info(`第 ${++step} 步,配置 git commit 卡点`);try{try{execa_1.default.sync("npx",["husky"],{cwd:i})}catch(e){try{execa_1.default.sync("npx",["husky","install"],{cwd:i})}catch(e){}}const e=path_1.default.join(i,".husky/_");fs_extra_1.default.existsSync(e)&&fs_extra_1.default.removeSync(e);const t=(e,t)=>{const n=path_1.default.join(i,`.husky/${e}`),r=`#!/usr/bin/env sh\n${t}\n`;fs_extra_1.default.writeFileSync(n,r,{mode:493})};t("commit-msg",'npx --no-install commitlint --edit "$1"'),t("pre-commit","npx --no-install lint-staged"),(0,cgz_core_1.setScripts)("commit","git-cz",i),(0,cgz_core_1.setScripts)("prepare","husky",i);const n=[];r.eslint&&((0,cgz_core_1.setScripts)("lint:eslint",'eslint "src/**/*.{js,jsx,ts,tsx,vue}" --cache --fix',i),n.push("pnpm run lint:eslint")),r.stylelint&&((0,cgz_core_1.setScripts)("lint:css",'stylelint "src/**/*.{css,scss,sass,less}" --allow-empty-input --fix',i),n.push("pnpm run lint:css")),r.markdownlint&&((0,cgz_core_1.setScripts)("lint:md",'markdownlint README.md "src/**/*.md" --fix',i),n.push("pnpm run lint:md")),n.length>0&&(0,cgz_core_1.setScripts)("lint",n.join(" && "),i),r.prettier&&(0,cgz_core_1.setScripts)("format",'prettier --write "src/**/*.{js,jsx,ts,tsx,vue,css,scss,sass,less,json,md}"',i),(0,cgz_core_1.setConfig)("config",{commitizen:{path:"@commitlint/cz-commitlint"}},i),(0,cgz_core_1.setConfig)("lint-staged",{"*.{js,jsx,tsx,ts,vue}":"eslint --cache --fix","*.{scss,less,css}":"stylelint --fix --allow-empty-input","*.md":"markdownlint --fix","*.{js,jsx,tsx,ts,vue,scss,less,css,json,html}":"prettier --write"},i),cgz_core_1.log.success("配置 git commit 卡点成功")}catch(e){cgz_core_1.log.error(e),cgz_core_1.log.error("配置 git commit 卡点失败")}cgz_core_1.log.info(`第 ${++step} 步,写入编码规范配置文件`),(0,generate_template_1.default)(i,r,t),cgz_core_1.log.success("写入编码规范配置文件成功"),pruneAndInstall(i,n),cgz_core_1.log.info(`第 ${++step} 步,安装vscode 扩展`),(0,extension_1.default)(i),cgz_core_1.log.result("初始化完成",path_1.default.resolve(__dirname,"../../"),!0)});
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cgzair/cgz-fabric",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "A collection of configuration files containing prettier, eslint, stylelint, markdown",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
|
+
"types": "lib/index.d.ts",
|
|
6
7
|
"bin": {
|
|
7
8
|
"fabric": "./lib/cli.js"
|
|
8
9
|
},
|
|
@@ -13,8 +14,7 @@
|
|
|
13
14
|
"build": "pnpm rimraf -g \"lib/**\" && pnpm run copy && tsc",
|
|
14
15
|
"copy": "copyfiles -a -u 1 \"src/config/**\" lib",
|
|
15
16
|
"test": "jest",
|
|
16
|
-
"test
|
|
17
|
-
"test:coverage": "nyc jest --coverage --forceExit"
|
|
17
|
+
"test:coverage": "jest --coverage"
|
|
18
18
|
},
|
|
19
19
|
"files": [
|
|
20
20
|
"lib",
|
|
@@ -24,11 +24,11 @@
|
|
|
24
24
|
],
|
|
25
25
|
"author": "cgz",
|
|
26
26
|
"peerDependencies": {
|
|
27
|
-
"@cgzair/commitlint-config-cgz": "^2.1.
|
|
28
|
-
"@cgzair/eslint-config-cgz": "^2.0
|
|
27
|
+
"@cgzair/commitlint-config-cgz": "^2.1.1",
|
|
28
|
+
"@cgzair/eslint-config-cgz": "^2.1.0",
|
|
29
29
|
"@cgzair/markdownlint-config-cgz": "^2.0.2",
|
|
30
|
-
"@cgzair/prettier-config-cgz": "^2.0
|
|
31
|
-
"@cgzair/stylelint-config-cgz": "^2.0
|
|
30
|
+
"@cgzair/prettier-config-cgz": "^2.1.0",
|
|
31
|
+
"@cgzair/stylelint-config-cgz": "^2.1.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependenciesMeta": {
|
|
34
34
|
"@cgzair/stylelint-config-cgz": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@cgzair/cgz-core": "^2.0
|
|
45
|
+
"@cgzair/cgz-core": "^2.1.0",
|
|
46
46
|
"chalk": "4.1.2",
|
|
47
47
|
"commander": "^9.0.0",
|
|
48
48
|
"ejs": "^3.1.6",
|
|
@@ -51,11 +51,11 @@
|
|
|
51
51
|
"lodash": "^4.17.21"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@cgzair/commitlint-config-cgz": "2.1.
|
|
55
|
-
"@cgzair/eslint-config-cgz": "2.0
|
|
54
|
+
"@cgzair/commitlint-config-cgz": "2.1.1",
|
|
55
|
+
"@cgzair/eslint-config-cgz": "2.1.0",
|
|
56
56
|
"@cgzair/markdownlint-config-cgz": "2.0.2",
|
|
57
|
-
"@cgzair/prettier-config-cgz": "2.0
|
|
58
|
-
"@cgzair/stylelint-config-cgz": "2.0
|
|
57
|
+
"@cgzair/prettier-config-cgz": "2.1.0",
|
|
58
|
+
"@cgzair/stylelint-config-cgz": "2.1.0",
|
|
59
59
|
"@types/ejs": "^3.1.0",
|
|
60
60
|
"@types/fs-extra": "^9.0.13",
|
|
61
61
|
"@types/glob": "^7.2.0",
|
|
@@ -65,7 +65,6 @@
|
|
|
65
65
|
"execa": "5.1.1",
|
|
66
66
|
"fs-extra": "^10.1.0",
|
|
67
67
|
"jest": "^30.2.0",
|
|
68
|
-
"nyc": "^15.1.0",
|
|
69
68
|
"rimraf": "^5.0.5",
|
|
70
69
|
"ts-node": "^10.8.1",
|
|
71
70
|
"typescript": "^5.9.3"
|
|
@@ -78,5 +77,5 @@
|
|
|
78
77
|
"pnpm": ">=9.0.0"
|
|
79
78
|
},
|
|
80
79
|
"license": "MIT",
|
|
81
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "172417b74fd1bcc567d540f9c5cc49a0528a0c48"
|
|
82
81
|
}
|