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('
|
|
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('
|
|
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
|
|
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
|
-
|
|
1339
|
+
dockerfile = 'python/Dockerfile';
|
|
1316
1340
|
break;
|
|
1317
1341
|
case 'golang':
|
|
1318
|
-
|
|
1342
|
+
dockerfile = 'golang/Dockerfile';
|
|
1319
1343
|
break;
|
|
1320
1344
|
default:
|
|
1321
|
-
|
|
1345
|
+
dockerfile = 'Dockerfile';
|
|
1322
1346
|
break;
|
|
1323
1347
|
}
|
|
1324
|
-
const
|
|
1325
|
-
|
|
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
|
+
"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.
|
|
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",
|
package/templates/Dockerfile
CHANGED
|
@@ -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"]
|