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 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.6.0" , '-v, --version');
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 { isPublishToNpm } = projectInfos;
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 (isPublishToNpm) {
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: false,
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: true,
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmyr-template-cli",
3
- "version": "1.7.0",
3
+ "version": "1.7.1",
4
4
  "description": "草梅友仁自制的项目模板创建器",
5
5
  "author": "CaoMeiYouRen",
6
6
  "license": "MIT",
@@ -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
+ }