cmyr-template-cli 1.25.3 → 1.25.4

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/plopfile.js CHANGED
@@ -533,14 +533,14 @@ async function init(projectPath, answers) {
533
533
  await asyncExec('java -version', {
534
534
  cwd: projectPath,
535
535
  });
536
- await asyncExec('mvn -version', {
536
+ await asyncExec('gradle -v', {
537
537
  cwd: projectPath,
538
538
  });
539
539
  await asyncExec('git add .', {
540
540
  cwd: projectPath,
541
541
  });
542
542
  try {
543
- await asyncExec('mvn dependency:go-offline -B -Dmaven.test.skip=true', {
543
+ await asyncExec('gradle dependencies --no-daemon', {
544
544
  cwd: projectPath,
545
545
  });
546
546
  }
@@ -880,6 +880,7 @@ async function getProjectInfo(projectPath, answers) {
880
880
  const testCommand = ((_d = pkg === null || pkg === void 0 ? void 0 : pkg.scripts) === null || _d === void 0 ? void 0 : _d.test) && `${packageManager} run test`;
881
881
  const lintCommand = ((_e = pkg === null || pkg === void 0 ? void 0 : pkg.scripts) === null || _e === void 0 ? void 0 : _e.lint) && `${packageManager} run lint`;
882
882
  const commitCommand = ((_f = pkg === null || pkg === void 0 ? void 0 : pkg.scripts) === null || _f === void 0 ? void 0 : _f.commit) && `${packageManager} run commit`;
883
+ const mainFile = pkg === null || pkg === void 0 ? void 0 : pkg.main;
883
884
  const githubUsername = (config === null || config === void 0 ? void 0 : config.GITHUB_USERNAME) || author;
884
885
  const giteeUsername = config === null || config === void 0 ? void 0 : config.GITEE_USERNAME;
885
886
  const weiboUsername = config === null || config === void 0 ? void 0 : config.WEIBO_USERNAME;
@@ -953,6 +954,7 @@ async function getProjectInfo(projectPath, answers) {
953
954
  twitterUsername,
954
955
  npmUsername,
955
956
  templateMeta,
957
+ mainFile,
956
958
  };
957
959
  loading.succeed('项目信息 初始化成功!');
958
960
  return projectInfos;
@@ -1306,33 +1308,45 @@ async function initDocker(projectPath, answers) {
1306
1308
  const templateMeta = getTemplateMeta(answers.template);
1307
1309
  const files = ['.dockerignore', 'docker-compose.yml'];
1308
1310
  await copyFilesFromTemplates(projectPath, files);
1309
- let dockerfilePath = 'Dockerfile';
1311
+ let dockerfile = 'Dockerfile';
1312
+ const newPath = path__default["default"].join(projectPath, 'Dockerfile');
1313
+ if (await fs__default["default"].pathExists(newPath)) {
1314
+ await fs__default["default"].remove(newPath);
1315
+ }
1316
+ if ((templateMeta === null || templateMeta === void 0 ? void 0 : templateMeta.runtime) === 'java') {
1317
+ const templatePath = path__default["default"].join(__dirname, '../templates/java/Dockerfile.ejs');
1318
+ await ejsRender(templatePath, { javaVersion: templateMeta === null || templateMeta === void 0 ? void 0 : templateMeta.javaVersion }, newPath);
1319
+ loading.succeed('Docker 初始化成功!');
1320
+ return;
1321
+ }
1322
+ if ((templateMeta === null || templateMeta === void 0 ? void 0 : templateMeta.runtime) === 'nodejs') {
1323
+ if ((templateMeta === null || templateMeta === void 0 ? void 0 : templateMeta.runtime) === 'nodejs') {
1324
+ const scriptsDir = path__default["default"].join(projectPath, 'scripts');
1325
+ if (!await fs__default["default"].pathExists(scriptsDir)) {
1326
+ await fs__default["default"].mkdir(scriptsDir);
1327
+ }
1328
+ await copyFilesFromTemplates(projectPath, ['scripts/minify-docker.js']);
1329
+ }
1330
+ const pkg = await getProjectJson(projectPath);
1331
+ const mainFile = pkg === null || pkg === void 0 ? void 0 : pkg.main;
1332
+ const templatePath = path__default["default"].join(__dirname, '../templates/Dockerfile');
1333
+ await ejsRender(templatePath, { mainFile }, newPath);
1334
+ loading.succeed('Docker 初始化成功!');
1335
+ return;
1336
+ }
1310
1337
  switch (templateMeta === null || templateMeta === void 0 ? void 0 : templateMeta.runtime) {
1311
- case 'java':
1312
- dockerfilePath = (templateMeta === null || templateMeta === void 0 ? void 0 : templateMeta.javaVersion) === 8 ? 'java/jdk8/Dockerfile' : 'java/jdk17/Dockerfile';
1313
- break;
1314
1338
  case 'python':
1315
- dockerfilePath = 'python/Dockerfile';
1339
+ dockerfile = 'python/Dockerfile';
1316
1340
  break;
1317
1341
  case 'golang':
1318
- dockerfilePath = 'golang/Dockerfile';
1342
+ dockerfile = 'golang/Dockerfile';
1319
1343
  break;
1320
1344
  default:
1321
- dockerfilePath = 'Dockerfile';
1345
+ dockerfile = 'Dockerfile';
1322
1346
  break;
1323
1347
  }
1324
- const newPath = path__default["default"].join(projectPath, 'Dockerfile');
1325
- if (await fs__default["default"].pathExists(newPath)) {
1326
- await fs__default["default"].remove(newPath);
1327
- }
1328
- await fs__default["default"].copyFile(path__default["default"].join(__dirname, '../templates/', dockerfilePath), newPath);
1329
- if ((templateMeta === null || templateMeta === void 0 ? void 0 : templateMeta.runtime) === 'nodejs') {
1330
- const scriptsDir = path__default["default"].join(projectPath, 'scripts');
1331
- if (!await fs__default["default"].pathExists(scriptsDir)) {
1332
- await fs__default["default"].mkdir(scriptsDir);
1333
- }
1334
- await copyFilesFromTemplates(projectPath, ['scripts/minify-docker.js']);
1335
- }
1348
+ const dockerfilePath = path__default["default"].join(__dirname, '../templates/', dockerfile);
1349
+ await fs__default["default"].copyFile(dockerfilePath, newPath);
1336
1350
  loading.succeed('Docker 初始化成功!');
1337
1351
  }
1338
1352
  catch (error) {
@@ -1490,6 +1504,14 @@ function kebabCase(str) {
1490
1504
  function getTemplateMeta(template) {
1491
1505
  return TEMPLATES_META_LIST.find((e) => e.name === template);
1492
1506
  }
1507
+ async function ejsRender(templatePath, data, outputPath) {
1508
+ const template = (await fs__default["default"].readFile(templatePath, 'utf8')).toString();
1509
+ const content = await ejs__default["default"].render(template, data, {
1510
+ debug: false,
1511
+ async: true,
1512
+ });
1513
+ await fs__default["default"].writeFile(outputPath, content);
1514
+ }
1493
1515
 
1494
1516
  module.exports = function (plop) {
1495
1517
  plop.setActionType('initProject', initProject);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmyr-template-cli",
3
- "version": "1.25.3",
3
+ "version": "1.25.4",
4
4
  "description": "草梅友仁自制的项目模板创建器",
5
5
  "author": "CaoMeiYouRen",
6
6
  "license": "MIT",
@@ -47,7 +47,7 @@
47
47
  "@types/node": "^20.0.0",
48
48
  "@types/promise.any": "^2.0.0",
49
49
  "@typescript-eslint/eslint-plugin": "6.15.0",
50
- "@typescript-eslint/parser": "6.15.0",
50
+ "@typescript-eslint/parser": "6.16.0",
51
51
  "commitizen": "^4.2.2",
52
52
  "conventional-changelog-cli": "^4.0.0",
53
53
  "conventional-changelog-cmyr-config": "^2.1.1",
@@ -37,5 +37,4 @@ COPY --from=docker-minifier /home/app /home/app
37
37
 
38
38
  EXPOSE 3000
39
39
 
40
- CMD ["node", "dist/main.js"]
41
- # CMD ["node", "dist/index.js"]
40
+ CMD ["node", "<%= mainFile %>"]
@@ -0,0 +1,28 @@
1
+ # 阶段一:安装依赖
2
+ FROM gradle:8.5.0-jdk<%= javaVersion %> as dependencies
3
+
4
+ WORKDIR /home/app
5
+
6
+ COPY build.gradle /home/app/build.gradle
7
+
8
+ # 只安装依赖,跳过测试
9
+ RUN gradle -v && gradle dependencies --no-daemon
10
+
11
+ # 阶段二:构建阶段
12
+ FROM dependencies as builder
13
+
14
+ COPY . /home/app
15
+
16
+ # 构建
17
+ RUN gradle clean build --no-daemon
18
+
19
+ # 阶段三:生产阶段
20
+ FROM eclipse-temurin:<%= javaVersion %>-jre-alpine
21
+
22
+ WORKDIR /home/app
23
+
24
+ COPY --from=builder /home/app/build/libs/main.jar /home/app
25
+
26
+ EXPOSE 8080
27
+
28
+ CMD ["java", "-jar", "main.jar"]
@@ -1,33 +0,0 @@
1
- # 阶段一:安装依赖
2
- FROM maven:3-eclipse-temurin-17-alpine as dependencies
3
-
4
- WORKDIR /home/app
5
-
6
- RUN java -version && mvn -version && \
7
- echo '<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><mirrors><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>https://maven.aliyun.com/repository/public/</url></mirror></mirrors></settings>' > /usr/share/maven/conf/settings.xml
8
-
9
- COPY pom.xml /home/app/pom.xml
10
-
11
- # 只安装依赖,跳过测试
12
- RUN mvn dependency:go-offline -B -Dmaven.test.skip=true
13
-
14
- # 阶段二:构建阶段
15
- FROM dependencies as builder
16
-
17
- COPY . /home/app
18
-
19
- # 构建
20
- RUN mvn clean package -Dmaven.test.skip=true
21
-
22
- # 阶段三:生产阶段
23
- FROM eclipse-temurin:17-jre-alpine
24
-
25
- WORKDIR /home/app
26
-
27
- RUN java -version
28
-
29
- COPY --from=builder /home/app/target/main.jar /home/app
30
-
31
- EXPOSE 8080
32
-
33
- CMD ["java", "-jar", "main.jar"]
@@ -1,33 +0,0 @@
1
- # 阶段一:安装依赖
2
- FROM maven:3-eclipse-temurin-8-alpine as dependencies
3
-
4
- WORKDIR /home/app
5
-
6
- RUN java -version && mvn -version && \
7
- echo '<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><mirrors><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>https://maven.aliyun.com/repository/public/</url></mirror></mirrors></settings>' > /usr/share/maven/conf/settings.xml
8
-
9
- COPY pom.xml /home/app/pom.xml
10
-
11
- # 只安装依赖,跳过测试
12
- RUN mvn dependency:go-offline -B -Dmaven.test.skip=true
13
-
14
- # 阶段二:构建阶段
15
- FROM dependencies as builder
16
-
17
- COPY . /home/app
18
-
19
- # 构建
20
- RUN mvn clean package -Dmaven.test.skip=true
21
-
22
- # 阶段三:生产阶段
23
- FROM eclipse-temurin:8-jre-alpine
24
-
25
- WORKDIR /home/app
26
-
27
- RUN java -version
28
-
29
- COPY --from=builder /home/app/target/main.jar /home/app
30
-
31
- EXPOSE 8080
32
-
33
- CMD ["java", "-jar", "main.jar"]