@lakutata/cli 1.0.14 → 1.0.15

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.
@@ -7,7 +7,7 @@ exports.CreateDockerFileManipulator = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const moment_timezone_1 = __importDefault(require("moment-timezone"));
10
- function generateDockerfileContent(timezone, envName, outDir, entryPoint) {
10
+ function generateDockerfileContent(timezone, envName, outDir, runtime, entryPoint) {
11
11
  const dockerFileContents = [
12
12
  'FROM node:14-buster-slim',
13
13
  '#Set docker timezone',
@@ -27,12 +27,17 @@ function generateDockerfileContent(timezone, envName, outDir, entryPoint) {
27
27
  'RUN npm install --build-from-source',
28
28
  'RUN tsc',
29
29
  '#Expose ports',
30
- '#Todo export ports or remove this line',
31
- `ENTRYPOINT node ${path_1.default.resolve('/app/', entryPoint)}`
30
+ '#TODO export ports or remove this line',
31
+ `ENTRYPOINT ${runtime} ${path_1.default.resolve('/app/', entryPoint)}`
32
32
  ];
33
33
  let content = '';
34
34
  dockerFileContents.forEach(line => {
35
- content = `${content}\n${line}`;
35
+ if (!content) {
36
+ content = line;
37
+ }
38
+ else {
39
+ content = `${content}\n${line}`;
40
+ }
36
41
  });
37
42
  return content;
38
43
  }
@@ -49,20 +54,36 @@ async function CreateDockerFileManipulator(projectPath, tsConfigFilePath, direct
49
54
  if (!mainEntry)
50
55
  return console.error('应用程序主入口设置有误');
51
56
  const dockerfiles = {};
52
- dockerfiles.Dockerfile = generateDockerfileContent(timezone, 'production', outDir, mainEntry);
57
+ dockerfiles.Dockerfile = generateDockerfileContent(timezone, 'production', outDir, 'node', mainEntry);
53
58
  if ((_b = packageJson === null || packageJson === void 0 ? void 0 : packageJson.scripts) === null || _b === void 0 ? void 0 : _b.test) {
54
59
  const testScriptString = packageJson.scripts.test;
55
60
  const testScriptParams = testScriptString.split(' ').reverse();
56
61
  let testEntryPoint = '';
62
+ let runtime = '';
57
63
  for (const testScriptParam of testScriptParams) {
58
64
  const regExp = /src\//;
59
65
  if (['.ts', '.js'].includes(path_1.default.extname(testScriptParam)) && regExp.test(testScriptParam)) {
60
- testEntryPoint = testScriptParam.replace('src/', `${outDir}/`);
66
+ switch (path_1.default.extname(testScriptParam)) {
67
+ case '.ts':
68
+ {
69
+ runtime = 'ts-node';
70
+ }
71
+ break;
72
+ case '.js':
73
+ {
74
+ runtime = 'node';
75
+ }
76
+ break;
77
+ default: {
78
+ console.error('不正确的测试主入口扩展名');
79
+ }
80
+ }
81
+ testEntryPoint = testScriptParam;
61
82
  break;
62
83
  }
63
84
  }
64
- if (testEntryPoint) {
65
- dockerfiles.DockerfileDev = generateDockerfileContent(timezone, 'development', outDir, testEntryPoint);
85
+ if (testEntryPoint && runtime) {
86
+ dockerfiles.DockerfileDev = generateDockerfileContent(timezone, 'development', outDir, runtime, testEntryPoint);
66
87
  }
67
88
  }
68
89
  for (const dockerfileName of Object.keys(dockerfiles)) {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateDockerFileManipulator.js","sourceRoot":"","sources":["../../../src/lib/manipulators/CreateDockerFileManipulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreateDockerFileManipulator.js","sourceRoot":"","sources":["../../../src/lib/manipulators/CreateDockerFileManipulator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lakutata/cli",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
4
4
  "description": "Lakutata CLI Tool",
5
5
  "main": "./build/CLI.js",
6
6
  "types": "./build/CLI.d.ts",
@@ -7,9 +7,10 @@ import moment from 'moment-timezone'
7
7
  * @param timezone
8
8
  * @param envName
9
9
  * @param outDir
10
+ * @param runtime
10
11
  * @param entryPoint
11
12
  */
12
- function generateDockerfileContent(timezone: string, envName: string, outDir: string, entryPoint: string): string {
13
+ function generateDockerfileContent(timezone: string, envName: string, outDir: string, runtime: string, entryPoint: string): string {
13
14
  const dockerFileContents: string[] = [
14
15
  'FROM node:14-buster-slim',
15
16
  '#Set docker timezone',
@@ -29,12 +30,16 @@ function generateDockerfileContent(timezone: string, envName: string, outDir: st
29
30
  'RUN npm install --build-from-source',
30
31
  'RUN tsc',
31
32
  '#Expose ports',
32
- '#Todo export ports or remove this line',
33
- `ENTRYPOINT node ${path.resolve('/app/', entryPoint)}`
33
+ '#TODO export ports or remove this line',
34
+ `ENTRYPOINT ${runtime} ${path.resolve('/app/', entryPoint)}`
34
35
  ]
35
36
  let content: string = ''
36
37
  dockerFileContents.forEach(line => {
37
- content = `${content}\n${line}`
38
+ if (!content) {
39
+ content = line
40
+ } else {
41
+ content = `${content}\n${line}`
42
+ }
38
43
  })
39
44
  return content
40
45
  }
@@ -49,21 +54,35 @@ export async function CreateDockerFileManipulator(projectPath: string, tsConfigF
49
54
  const mainEntry: string = packageJson?.main ? packageJson.main : ''
50
55
  if (!mainEntry) return console.error('应用程序主入口设置有误')
51
56
  const dockerfiles: { [key: string]: string } = {}
52
- dockerfiles.Dockerfile = generateDockerfileContent(timezone, 'production', outDir, mainEntry)
57
+ dockerfiles.Dockerfile = generateDockerfileContent(timezone, 'production', outDir, 'node', mainEntry)
53
58
  if (packageJson?.scripts?.test) {
54
59
  //有测试主入口
55
60
  const testScriptString: string = packageJson.scripts.test
56
61
  const testScriptParams: string[] = testScriptString.split(' ').reverse()
57
62
  let testEntryPoint: string = ''
63
+ let runtime: string = ''
58
64
  for (const testScriptParam of testScriptParams) {
59
65
  const regExp = /src\//
60
66
  if (['.ts', '.js'].includes(path.extname(testScriptParam)) && regExp.test(testScriptParam)) {
61
- testEntryPoint = testScriptParam.replace('src/', `${outDir}/`)
67
+ switch (path.extname(testScriptParam)) {
68
+ case '.ts': {
69
+ runtime = 'ts-node'
70
+ }
71
+ break
72
+ case '.js': {
73
+ runtime = 'node'
74
+ }
75
+ break
76
+ default: {
77
+ console.error('不正确的测试主入口扩展名')
78
+ }
79
+ }
80
+ testEntryPoint = testScriptParam
62
81
  break
63
82
  }
64
83
  }
65
- if (testEntryPoint) {
66
- dockerfiles.DockerfileDev = generateDockerfileContent(timezone, 'development', outDir, testEntryPoint)
84
+ if (testEntryPoint && runtime) {
85
+ dockerfiles.DockerfileDev = generateDockerfileContent(timezone, 'development', outDir, runtime, testEntryPoint)
67
86
  }
68
87
  }
69
88
  for (const dockerfileName of Object.keys(dockerfiles)) {