@travetto/pack 6.0.1 → 7.0.0-rc.0
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/README.md +10 -10
- package/package.json +7 -7
- package/support/cli.pack_docker.ts +22 -11
- package/support/pack.base.ts +28 -16
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ There are three primary cli commands for packing your code:
|
|
|
26
26
|
```bash
|
|
27
27
|
$ trv pack --help
|
|
28
28
|
|
|
29
|
-
Usage: pack [options]
|
|
29
|
+
Usage: pack [options] [args...:string]
|
|
30
30
|
|
|
31
31
|
Options:
|
|
32
32
|
-b, --build-dir <string> Workspace for building (default: "/tmp/<temp-folder>")
|
|
@@ -92,7 +92,7 @@ This command is nearly identical to the standard `pack` operation, except for th
|
|
|
92
92
|
```bash
|
|
93
93
|
$ trv pack:zip --help
|
|
94
94
|
|
|
95
|
-
Usage: pack:zip [options]
|
|
95
|
+
Usage: pack:zip [options] [args...:string]
|
|
96
96
|
|
|
97
97
|
Options:
|
|
98
98
|
-b, --build-dir <string> Workspace for building (default: "/tmp/<temp-folder>")
|
|
@@ -121,7 +121,7 @@ This command starts off identical to the standard `pack` operation, but it conta
|
|
|
121
121
|
```bash
|
|
122
122
|
$ trv pack:docker --help
|
|
123
123
|
|
|
124
|
-
Usage: pack:docker [options]
|
|
124
|
+
Usage: pack:docker [options] [args...:string]
|
|
125
125
|
|
|
126
126
|
Options:
|
|
127
127
|
-b, --build-dir <string> Workspace for building (default: "/tmp/<temp-folder>")
|
|
@@ -140,7 +140,7 @@ Options:
|
|
|
140
140
|
-wr, --include-workspace-resources Include workspace resources (default: false)
|
|
141
141
|
-np, --npm-package <string> External NPM Packages (default: [])
|
|
142
142
|
-df, --docker-factory <string> Docker Factory source (default: "@travetto/pack/support/pack.dockerfile.ts")
|
|
143
|
-
-di, --docker-image <string> Docker Image to extend (default: "node:
|
|
143
|
+
-di, --docker-image <string> Docker Image to extend (default: "node:25-alpine")
|
|
144
144
|
-dn, --docker-name <string> Docker Image Name (default: "travetto_pack")
|
|
145
145
|
-ru, --runtime-user <string> Docker Runtime user
|
|
146
146
|
-rp, --runtime-package <string> Docker Runtime Packages (default: [])
|
|
@@ -244,21 +244,21 @@ cd $TRV_OUT
|
|
|
244
244
|
npx rollup -c $TRV_OUT/node_modules/@travetto/pack/support/rollup/build.js
|
|
245
245
|
cd $ROOT
|
|
246
246
|
|
|
247
|
-
# Pulling Docker Base Image node:
|
|
247
|
+
# Pulling Docker Base Image node:25-alpine
|
|
248
248
|
|
|
249
|
-
echo "Pulling Docker Base Image node:
|
|
249
|
+
echo "Pulling Docker Base Image node:25-alpine"
|
|
250
250
|
|
|
251
|
-
docker pull node:
|
|
251
|
+
docker pull node:25-alpine
|
|
252
252
|
|
|
253
|
-
# Detected Image OS node:
|
|
253
|
+
# Detected Image OS node:25-alpine as alpine
|
|
254
254
|
|
|
255
|
-
echo "Detected Image OS node:
|
|
255
|
+
echo "Detected Image OS node:25-alpine as alpine"
|
|
256
256
|
|
|
257
257
|
# Generating Docker File $DIST/Dockerfile @travetto/pack/support/pack.dockerfile.ts
|
|
258
258
|
|
|
259
259
|
echo "Generating Docker File $DIST/Dockerfile @travetto/pack/support/pack.dockerfile.ts"
|
|
260
260
|
|
|
261
|
-
echo "FROM node:
|
|
261
|
+
echo "FROM node:25-alpine" > $DIST/Dockerfile
|
|
262
262
|
echo "RUN addgroup -g 2000 app && adduser -D -G app -u 2000 app" >> $DIST/Dockerfile
|
|
263
263
|
echo "RUN mkdir /app && chown app:app /app" >> $DIST/Dockerfile
|
|
264
264
|
echo "COPY --chown=\"app:app\" . /app" >> $DIST/Dockerfile
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@travetto/pack",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0-rc.0",
|
|
4
4
|
"description": "Code packing utilities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"travetto",
|
|
@@ -25,16 +25,16 @@
|
|
|
25
25
|
"directory": "module/pack"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@rollup/plugin-commonjs": "^
|
|
28
|
+
"@rollup/plugin-commonjs": "^29.0.0",
|
|
29
29
|
"@rollup/plugin-json": "^6.1.0",
|
|
30
|
-
"@rollup/plugin-node-resolve": "^16.0.
|
|
30
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
31
31
|
"@rollup/plugin-terser": "^0.4.4",
|
|
32
|
-
"@travetto/runtime": "^
|
|
33
|
-
"@travetto/terminal": "^
|
|
34
|
-
"rollup": "^4.
|
|
32
|
+
"@travetto/runtime": "^7.0.0-rc.0",
|
|
33
|
+
"@travetto/terminal": "^7.0.0-rc.0",
|
|
34
|
+
"rollup": "^4.53.3"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"@travetto/cli": "^
|
|
37
|
+
"@travetto/cli": "^7.0.0-rc.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependenciesMeta": {
|
|
40
40
|
"@travetto/cli": {
|
|
@@ -15,30 +15,41 @@ const NODE_MAJOR = process.version.match(/\d+/)?.[0] ?? '22';
|
|
|
15
15
|
*/
|
|
16
16
|
@CliCommand({ with: { module: true } })
|
|
17
17
|
export class PackDockerCommand extends BasePackCommand {
|
|
18
|
-
|
|
18
|
+
/** Docker Factory source */
|
|
19
|
+
@CliFlag({ short: 'df', envVars: ['PACK_DOCKER_FACTORY'] })
|
|
19
20
|
dockerFactory = '@travetto/pack/support/pack.dockerfile.ts';
|
|
20
|
-
|
|
21
|
+
/** Docker Image to extend */
|
|
22
|
+
@CliFlag({ short: 'di', envVars: ['PACK_DOCKER_IMAGE'] })
|
|
21
23
|
dockerImage = `node:${NODE_MAJOR}-alpine`;
|
|
22
|
-
|
|
24
|
+
/** Docker Image Name */
|
|
25
|
+
@CliFlag({ short: 'dn', envVars: ['PACK_DOCKER_IMAGE'] })
|
|
23
26
|
@Required(false)
|
|
24
27
|
dockerName: string;
|
|
25
|
-
|
|
28
|
+
/** Docker Runtime user */
|
|
29
|
+
@CliFlag({ short: 'ru', full: 'runtime-user', envVars: ['PACK_DOCKER_RUNTIME_USER'] })
|
|
26
30
|
dockerRuntimeUserSrc?: string;
|
|
27
|
-
|
|
31
|
+
/** Docker Runtime Packages */
|
|
32
|
+
@CliFlag({ short: 'rp', full: 'runtime-package', envVars: ['PACK_DOCKER_RUNTIME_PACKAGES'] })
|
|
28
33
|
dockerRuntimePackages: string[] = [];
|
|
29
|
-
|
|
34
|
+
/** Docker Image Port */
|
|
35
|
+
@CliFlag({ short: 'dp', envVars: ['PACK_DOCKER_PORT'] })
|
|
30
36
|
dockerPort: number[] = [];
|
|
31
37
|
|
|
32
38
|
// Publish flags
|
|
33
|
-
|
|
39
|
+
/** Docker Stage Only */
|
|
40
|
+
@CliFlag({ short: 'ds', envVars: ['PACK_DOCKER_STAGE'] })
|
|
34
41
|
dockerStageOnly: boolean = false;
|
|
35
|
-
|
|
42
|
+
/** Docker Image Tag */
|
|
43
|
+
@CliFlag({ short: 'dt', envVars: ['PACK_DOCKER_TAGS'] })
|
|
36
44
|
dockerTag: string[] = ['latest'];
|
|
37
|
-
|
|
45
|
+
/** Docker Push Tags */
|
|
46
|
+
@CliFlag({ short: 'dx', envVars: ['PACK_DOCKER_PUSH'] })
|
|
38
47
|
dockerPush = false;
|
|
39
|
-
|
|
48
|
+
/** Docker Build Platform */
|
|
49
|
+
@CliFlag({ short: 'db', envVars: ['PACK_DOCKER_BUILD_PLATFORM'] })
|
|
40
50
|
dockerBuildPlatform?: string;
|
|
41
|
-
|
|
51
|
+
/** Docker Registry */
|
|
52
|
+
@CliFlag({ short: 'dr', envVars: ['PACK_DOCKER_REGISTRY'] })
|
|
42
53
|
dockerRegistry?: string;
|
|
43
54
|
|
|
44
55
|
@Ignore()
|
package/support/pack.base.ts
CHANGED
|
@@ -4,7 +4,7 @@ import path from 'node:path';
|
|
|
4
4
|
import { CliCommandShape, CliFlag, ParsedState, cliTpl } from '@travetto/cli';
|
|
5
5
|
import { TimeUtil, Runtime, RuntimeIndex } from '@travetto/runtime';
|
|
6
6
|
import { Terminal } from '@travetto/terminal';
|
|
7
|
-
import { Ignore, Required, Schema } from '@travetto/schema';
|
|
7
|
+
import { Ignore, Method, Required, Schema } from '@travetto/schema';
|
|
8
8
|
import { PackageUtil } from '@travetto/manifest';
|
|
9
9
|
|
|
10
10
|
import { PackOperation } from './bin/operation.ts';
|
|
@@ -27,52 +27,63 @@ export abstract class BasePackCommand implements CliCommandShape {
|
|
|
27
27
|
@Ignore()
|
|
28
28
|
_parsed: ParsedState;
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
/** Workspace for building */
|
|
31
|
+
@CliFlag({ short: 'b' })
|
|
31
32
|
buildDir: string = path.resolve(os.tmpdir(), Runtime.mainSourcePath.replace(/[\/\\: ]/g, '_'));
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
/** Clean workspace */
|
|
34
35
|
clean = true;
|
|
35
36
|
|
|
36
|
-
|
|
37
|
+
/** Output location */
|
|
38
|
+
@CliFlag({ short: 'o' })
|
|
37
39
|
@Required(false)
|
|
38
40
|
output: string;
|
|
39
41
|
|
|
40
|
-
|
|
42
|
+
/** Create entry scripts */
|
|
43
|
+
@CliFlag({ short: 'es' })
|
|
41
44
|
mainScripts: boolean = true;
|
|
42
45
|
|
|
43
|
-
|
|
46
|
+
/** Main name for build artifact */
|
|
47
|
+
@CliFlag({ short: 'f' })
|
|
44
48
|
@Required(false)
|
|
45
49
|
mainName: string;
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
/** Entry point */
|
|
52
|
+
@CliFlag({ short: 'e' })
|
|
48
53
|
@Required(false)
|
|
49
54
|
entryPoint: string = '@travetto/cli/support/entry.trv.ts';
|
|
50
55
|
|
|
51
|
-
|
|
56
|
+
/** Minify output */
|
|
52
57
|
minify = true;
|
|
53
58
|
|
|
54
|
-
|
|
59
|
+
/** Bundle source maps */
|
|
60
|
+
@CliFlag({ short: 'sm' })
|
|
55
61
|
sourcemap = false;
|
|
56
62
|
|
|
57
|
-
|
|
63
|
+
/** Include source with source maps */
|
|
64
|
+
@CliFlag({ short: 'is' })
|
|
58
65
|
includeSources = false;
|
|
59
66
|
|
|
60
|
-
|
|
67
|
+
/** Eject commands to file */
|
|
68
|
+
@CliFlag({ short: 'x' })
|
|
61
69
|
ejectFile?: string;
|
|
62
70
|
|
|
63
|
-
|
|
71
|
+
/** Rollup configuration file */
|
|
72
|
+
@CliFlag({ short: 'r' })
|
|
64
73
|
rollupConfiguration = '@travetto/pack/support/rollup/build.ts';
|
|
65
74
|
|
|
66
|
-
|
|
75
|
+
/** Env Flag File Name */
|
|
67
76
|
envFile = '.env';
|
|
68
77
|
|
|
69
|
-
|
|
78
|
+
/** Manifest File Name */
|
|
70
79
|
manifestFile = 'manifest.json';
|
|
71
80
|
|
|
72
|
-
|
|
81
|
+
/** Include workspace resources */
|
|
82
|
+
@CliFlag({ short: 'wr' })
|
|
73
83
|
includeWorkspaceResources: boolean = false;
|
|
74
84
|
|
|
75
|
-
|
|
85
|
+
/** External NPM Packages */
|
|
86
|
+
@CliFlag({ short: 'np', full: 'npm-package', envVars: ['PACK_EXTERNAL_PACKAGES'] })
|
|
76
87
|
externalDependencies: string[] = [];
|
|
77
88
|
|
|
78
89
|
@Ignore()
|
|
@@ -125,6 +136,7 @@ export abstract class BasePackCommand implements CliCommandShape {
|
|
|
125
136
|
.flat();
|
|
126
137
|
}
|
|
127
138
|
|
|
139
|
+
@Method()
|
|
128
140
|
async main(args: string[] = []): Promise<void> {
|
|
129
141
|
// Resolve all files to absolute paths
|
|
130
142
|
this.output = this.output ? path.resolve(this.output) : undefined!;
|