cmyr-template-cli 1.7.0 → 1.7.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/dist/index.js +1 -1
- package/dist/plopfile.js +70 -10
- package/package.json +1 -1
- package/templates/.releaserc.js +34 -0
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
|
|
|
13
13
|
|
|
14
14
|
const program = new commander.Command('ct')
|
|
15
15
|
.description('草梅项目创建器');
|
|
16
|
-
program.version("1.
|
|
16
|
+
program.version("1.7.0" , '-v, --version');
|
|
17
17
|
const args = process.argv.slice(2);
|
|
18
18
|
if (args.length === 0) {
|
|
19
19
|
args.push('create');
|
package/dist/plopfile.js
CHANGED
|
@@ -115,7 +115,7 @@ async function initProject(answers) {
|
|
|
115
115
|
}
|
|
116
116
|
async function init(projectPath, answers) {
|
|
117
117
|
var _a;
|
|
118
|
-
const { isOpenSource, isRemoveDependabot, gitRemoteUrl, isInitReadme, isInitContributing, isInitHusky } = answers;
|
|
118
|
+
const { isOpenSource, isRemoveDependabot, gitRemoteUrl, isInitReadme, isInitContributing, isInitHusky, isInitSemanticRelease } = answers;
|
|
119
119
|
try {
|
|
120
120
|
await asyncExec('git --version', {
|
|
121
121
|
cwd: projectPath,
|
|
@@ -155,6 +155,9 @@ async function init(projectPath, answers) {
|
|
|
155
155
|
if (info.licenseName === 'MIT') {
|
|
156
156
|
await initLicense(projectPath, info);
|
|
157
157
|
}
|
|
158
|
+
if (isInitSemanticRelease) {
|
|
159
|
+
await initSemanticRelease(projectPath, info);
|
|
160
|
+
}
|
|
158
161
|
if (isInitHusky) {
|
|
159
162
|
await initHusky(projectPath, info);
|
|
160
163
|
}
|
|
@@ -233,11 +236,6 @@ async function initProjectJson(projectPath, answers) {
|
|
|
233
236
|
bugs: {
|
|
234
237
|
url: issuesUrl,
|
|
235
238
|
},
|
|
236
|
-
devDependencies: {
|
|
237
|
-
'conventional-changelog-cli': '^2.1.1',
|
|
238
|
-
'conventional-changelog-cmyr-config': `^${await getNpmPackageVersion('conventional-changelog-cmyr-config')}`,
|
|
239
|
-
...pkg === null || pkg === void 0 ? void 0 : pkg.devDependencies,
|
|
240
|
-
},
|
|
241
239
|
changelog: {
|
|
242
240
|
language: 'zh',
|
|
243
241
|
},
|
|
@@ -418,14 +416,14 @@ async function initConfig(projectPath) {
|
|
|
418
416
|
async function initGithubWorkflows(projectPath, projectInfos) {
|
|
419
417
|
const loading = ora__default["default"]('正在初始化 Github Workflows ……').start();
|
|
420
418
|
try {
|
|
421
|
-
const {
|
|
419
|
+
const { isInitSemanticRelease } = projectInfos;
|
|
422
420
|
const files = ['.github/workflows/test.yml'];
|
|
423
421
|
const dir = path__default["default"].join(projectPath, '.github/workflows');
|
|
424
422
|
if (!await fs__default["default"].pathExists(dir)) {
|
|
425
423
|
await fs__default["default"].mkdirp(dir);
|
|
426
424
|
}
|
|
427
425
|
const releaseYml = '.github/workflows/release.yml';
|
|
428
|
-
if (
|
|
426
|
+
if (isInitSemanticRelease) {
|
|
429
427
|
files.push(releaseYml);
|
|
430
428
|
const oldReleaseYml = path__default["default"].join(projectPath, '.github/release.yml');
|
|
431
429
|
if (await fs__default["default"].pathExists(oldReleaseYml)) {
|
|
@@ -453,6 +451,46 @@ async function initGithubWorkflows(projectPath, projectInfos) {
|
|
|
453
451
|
console.error(error);
|
|
454
452
|
}
|
|
455
453
|
}
|
|
454
|
+
async function initSemanticRelease(projectPath, projectInfos) {
|
|
455
|
+
const loading = ora__default["default"]('正在初始化 semantic-release ……').start();
|
|
456
|
+
try {
|
|
457
|
+
const files = ['.releaserc.js'];
|
|
458
|
+
files.forEach(async (file) => {
|
|
459
|
+
const templatePath = path__default["default"].join(__dirname, '../templates/', file);
|
|
460
|
+
const newPath = path__default["default"].join(projectPath, file);
|
|
461
|
+
if (await fs__default["default"].pathExists(newPath)) {
|
|
462
|
+
await fs__default["default"].remove(newPath);
|
|
463
|
+
}
|
|
464
|
+
await fs__default["default"].copyFile(templatePath, newPath);
|
|
465
|
+
});
|
|
466
|
+
const pkgPath = path__default["default"].join(projectPath, 'package.json');
|
|
467
|
+
const pkg = await fs__default["default"].readJSON(pkgPath);
|
|
468
|
+
const devDependencies = {
|
|
469
|
+
'@semantic-release/changelog': '^6.0.1',
|
|
470
|
+
'@semantic-release/git': '^10.0.1',
|
|
471
|
+
'conventional-changelog-cli': '^2.1.1',
|
|
472
|
+
'conventional-changelog-cmyr-config': `^${await getNpmPackageVersion('conventional-changelog-cmyr-config')}`,
|
|
473
|
+
'semantic-release': '^18.0.1',
|
|
474
|
+
};
|
|
475
|
+
const pkgData = {
|
|
476
|
+
scripts: {
|
|
477
|
+
release: 'semantic-release',
|
|
478
|
+
...pkg === null || pkg === void 0 ? void 0 : pkg.scripts,
|
|
479
|
+
},
|
|
480
|
+
devDependencies: {
|
|
481
|
+
...devDependencies,
|
|
482
|
+
...pkg === null || pkg === void 0 ? void 0 : pkg.devDependencies,
|
|
483
|
+
},
|
|
484
|
+
};
|
|
485
|
+
const newPkg = Object.assign({}, pkg, pkgData);
|
|
486
|
+
await fs__default["default"].writeFile(pkgPath, JSON.stringify(newPkg, null, 2));
|
|
487
|
+
loading.succeed('semantic-release 初始化成功!');
|
|
488
|
+
}
|
|
489
|
+
catch (error) {
|
|
490
|
+
loading.fail('semantic-release 初始化失败!');
|
|
491
|
+
console.error(error);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
456
494
|
async function initHusky(projectPath, projectInfos) {
|
|
457
495
|
var _a, _b;
|
|
458
496
|
const loading = ora__default["default"]('正在初始化 husky ……').start();
|
|
@@ -489,6 +527,10 @@ async function initHusky(projectPath, projectInfos) {
|
|
|
489
527
|
'lint-staged': '^12.1.2',
|
|
490
528
|
};
|
|
491
529
|
const pkgData = {
|
|
530
|
+
scripts: {
|
|
531
|
+
commit: 'cz',
|
|
532
|
+
...pkg === null || pkg === void 0 ? void 0 : pkg.scripts,
|
|
533
|
+
},
|
|
492
534
|
devDependencies: {
|
|
493
535
|
...devDependencies,
|
|
494
536
|
...pkg === null || pkg === void 0 ? void 0 : pkg.devDependencies,
|
|
@@ -654,11 +696,26 @@ module.exports = function (plop) {
|
|
|
654
696
|
return answers.isOpenSource;
|
|
655
697
|
},
|
|
656
698
|
},
|
|
699
|
+
{
|
|
700
|
+
type: 'confirm',
|
|
701
|
+
name: 'isInitSemanticRelease',
|
|
702
|
+
message: '是否初始化 semantic-release?',
|
|
703
|
+
default(answers) {
|
|
704
|
+
const { isPublishToNpm } = answers;
|
|
705
|
+
return isPublishToNpm;
|
|
706
|
+
},
|
|
707
|
+
when(answers) {
|
|
708
|
+
return answers.isOpenSource;
|
|
709
|
+
},
|
|
710
|
+
},
|
|
657
711
|
{
|
|
658
712
|
type: 'confirm',
|
|
659
713
|
name: 'isInitHusky',
|
|
660
714
|
message: '是否初始化 husky?',
|
|
661
|
-
default
|
|
715
|
+
default(answers) {
|
|
716
|
+
const { isPublishToNpm } = answers;
|
|
717
|
+
return isPublishToNpm;
|
|
718
|
+
},
|
|
662
719
|
when(answers) {
|
|
663
720
|
return answers.isOpenSource;
|
|
664
721
|
},
|
|
@@ -676,7 +733,10 @@ module.exports = function (plop) {
|
|
|
676
733
|
type: 'confirm',
|
|
677
734
|
name: 'isInitContributing',
|
|
678
735
|
message: '是否初始化 贡献指南(CONTRIBUTING.md) ?',
|
|
679
|
-
default
|
|
736
|
+
default(answers) {
|
|
737
|
+
const { isPublishToNpm } = answers;
|
|
738
|
+
return isPublishToNpm;
|
|
739
|
+
},
|
|
680
740
|
when(answers) {
|
|
681
741
|
return answers.isOpenSource;
|
|
682
742
|
},
|
package/package.json
CHANGED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const { name } = require('./package.json')
|
|
2
|
+
module.exports = {
|
|
3
|
+
plugins: [
|
|
4
|
+
[
|
|
5
|
+
"@semantic-release/commit-analyzer",
|
|
6
|
+
{
|
|
7
|
+
"config": "conventional-changelog-cmyr-config"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
["@semantic-release/release-notes-generator",
|
|
11
|
+
{
|
|
12
|
+
"config": "conventional-changelog-cmyr-config"
|
|
13
|
+
}],
|
|
14
|
+
[
|
|
15
|
+
"@semantic-release/changelog",
|
|
16
|
+
{
|
|
17
|
+
"changelogFile": "CHANGELOG.md",
|
|
18
|
+
"changelogTitle": "# " + name
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
'@semantic-release/npm',
|
|
22
|
+
'@semantic-release/github',
|
|
23
|
+
[
|
|
24
|
+
"@semantic-release/git",
|
|
25
|
+
{
|
|
26
|
+
"assets": [
|
|
27
|
+
"src",
|
|
28
|
+
"CHANGELOG.md",
|
|
29
|
+
"package.json"
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
]
|
|
34
|
+
}
|