@travetto/pack 3.0.2-rc.0 → 3.0.2-rc.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/README.md CHANGED
@@ -29,15 +29,17 @@ $ trv pack --help
29
29
  Usage: pack [options] [args...]
30
30
 
31
31
  Options:
32
- -w, --workspace <workspace> Workspace for building
33
- -c, --no-clean Disables: Clean workspace
34
- -o, --output <output> Output Location
35
- -e, --entry-point <entry-point> Entry point (default: "@travetto/cli/support/entry.cli")
36
- -m, --no-minify Disables: Minify output
37
- -sm, --sourcemap Bundle source maps
38
- -is, --include-sources Include source with source maps
39
- -x, --eject-file <eject-file> Eject commands to file
40
- -h, --help display help for command
32
+ -w, --workspace <workspace> Workspace for building
33
+ -c, --no-clean Disables: Clean workspace
34
+ -o, --output <output> Output location
35
+ -es, --main-scripts <main-scripts> Create entry scripts
36
+ -f, --main-name <main-name> Main name for build artifact (default: "cli")
37
+ -e, --entry-point <entry-point> Entry point (default: "@travetto/cli/support/entry.cli")
38
+ -m, --no-minify Disables: Minify output
39
+ -sm, --sourcemap Bundle source maps
40
+ -is, --include-sources Include source with source maps
41
+ -x, --eject-file <eject-file> Eject commands to file
42
+ -h, --help display help for command
41
43
  ```
42
44
 
43
45
  This command line operation will compile your project, and produce a ready to use workspace as a deliverable. Additionally, you can pass in a file to the `eject-file` flag that will allow for a script to be produced (base on the host operating system).
@@ -89,15 +91,17 @@ $ trv pack:zip --help
89
91
  Usage: pack:zip [options] [args...]
90
92
 
91
93
  Options:
92
- -w, --workspace <workspace> Workspace for building
93
- -c, --no-clean Disables: Clean workspace
94
- -o, --output <output> Output Location (default: "travetto_pack.zip")
95
- -e, --entry-point <entry-point> Entry point (default: "@travetto/cli/support/entry.cli")
96
- -m, --no-minify Disables: Minify output
97
- -sm, --sourcemap Bundle source maps
98
- -is, --include-sources Include source with source maps
99
- -x, --eject-file <eject-file> Eject commands to file
100
- -h, --help display help for command
94
+ -w, --workspace <workspace> Workspace for building
95
+ -c, --no-clean Disables: Clean workspace
96
+ -o, --output <output> Output location (default: "travetto_pack.zip")
97
+ -es, --main-scripts <main-scripts> Create entry scripts
98
+ -f, --main-name <main-name> Main name for build artifact (default: "cli")
99
+ -e, --entry-point <entry-point> Entry point (default: "@travetto/cli/support/entry.cli")
100
+ -m, --no-minify Disables: Minify output
101
+ -sm, --sourcemap Bundle source maps
102
+ -is, --include-sources Include source with source maps
103
+ -x, --eject-file <eject-file> Eject commands to file
104
+ -h, --help display help for command
101
105
  ```
102
106
 
103
107
  ## CLI - pack:docker
@@ -113,7 +117,9 @@ Usage: pack:docker [options] [args...]
113
117
  Options:
114
118
  -w, --workspace <workspace> Workspace for building
115
119
  -c, --no-clean Disables: Clean workspace
116
- -o, --output <output> Output Location
120
+ -o, --output <output> Output location
121
+ -es, --main-scripts <main-scripts> Create entry scripts
122
+ -f, --main-name <main-name> Main name for build artifact (default: "cli")
117
123
  -e, --entry-point <entry-point> Entry point (default: "@travetto/cli/support/entry.cli")
118
124
  -m, --no-minify Disables: Minify output
119
125
  -sm, --sourcemap Bundle source maps
@@ -218,7 +224,7 @@ TRV_MODULE=$MOD npx trv manifest $DIST/node_modules/$MOD prod
218
224
  echo "Bundling Output minify=true sourcemap= entryPoint=@travetto/cli/support/entry.cli
219
225
  "
220
226
  export BUNDLE_ENTRY=node_modules/@travetto/cli/support/entry.cli.js
221
- export BUNDLE_ENTRY_COMMAND=cli
227
+ export BUNDLE_MAIN_FILE=cli.js
222
228
  export BUNDLE_COMPRESS=true
223
229
  export BUNDLE_OUTPUT=$DIST
224
230
  export BUNDLE_FORMAT=commonjs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@travetto/pack",
3
- "version": "3.0.2-rc.0",
3
+ "version": "3.0.2-rc.1",
4
4
  "description": "Code packing utilities",
5
5
  "keywords": [
6
6
  "travetto",
@@ -28,12 +28,12 @@
28
28
  "@rollup/plugin-json": "^6.0.0",
29
29
  "@rollup/plugin-node-resolve": "^15.0.1",
30
30
  "@rollup/plugin-terser": "^0.4.0",
31
- "@travetto/base": "^3.0.2-rc.0",
31
+ "@travetto/base": "^3.0.2-rc.1",
32
32
  "rollup": "^3.17.2",
33
33
  "rollup-plugin-sourcemaps": "^0.6.3"
34
34
  },
35
35
  "peerDependencies": {
36
- "@travetto/cli": "^3.0.2-rc.0"
36
+ "@travetto/cli": "^3.0.2-rc.1"
37
37
  },
38
38
  "peerDependenciesMeta": {
39
39
  "@travetto/cli": {
@@ -38,7 +38,7 @@ function getFilesFromModule(m: ManifestModule): string[] {
38
38
  export function getOutput(): OutputOptions {
39
39
  const format: Package['type'] = Env.get('BUNDLE_FORMAT', 'commonjs');
40
40
  const dir = Env.get('BUNDLE_OUTPUT')!;
41
- const entryName = Env.get('BUNDLE_ENTRY_COMMAND')!;
41
+ const mainFile = Env.get('BUNDLE_MAIN_FILE')!;
42
42
  return {
43
43
  format,
44
44
  intro: INTRO[format],
@@ -50,7 +50,7 @@ export function getOutput(): OutputOptions {
50
50
  !(Env.getBoolean('BUNDLE_SOURCES') ?? false),
51
51
  compact:
52
52
  Env.getBoolean('BUNDLE_COMPRESS') ?? true,
53
- file: path.resolve(dir, `${entryName}.js`),
53
+ file: path.resolve(dir, mainFile),
54
54
  ...(format === 'commonjs' ? {} : {
55
55
  inlineDynamicImports: true
56
56
  }),
@@ -60,7 +60,7 @@ export class PackOperation {
60
60
 
61
61
  const env = Object.fromEntries(([
62
62
  ['BUNDLE_ENTRY', entryPointFile],
63
- ['BUNDLE_ENTRY_COMMAND', cfg.entryCommand],
63
+ ['BUNDLE_MAIN_FILE', `${cfg.mainName}.js`],
64
64
  ['BUNDLE_COMPRESS', cfg.minify],
65
65
  ['BUNDLE_SOURCEMAP', cfg.sourcemap],
66
66
  ['BUNDLE_SOURCES', cfg.includeSources],
@@ -140,16 +140,20 @@ export class PackOperation {
140
140
  * Create launcher scripts (.sh, .cmd) to run output
141
141
  */
142
142
  static async * writeEntryScript(cfg: CommonPackConfig): AsyncIterable<string[]> {
143
+ if (!cfg.mainScripts && !cfg.entryPoint.includes('@travetto/cli')) {
144
+ return;
145
+ }
146
+
143
147
  const title = 'Writing entry scripts';
144
148
 
145
149
  const files = ([['posix', 'sh'], ['win32', 'cmd']] as const)
146
150
  .map(([type, ext]) => ({
147
- fileTitle: cliTpl`${{ title }} ${{ path: `${cfg.entryCommand}.${ext}` }} args=(${{ param: cfg.entryArguments.join(' ') }})`,
148
- file: `${cfg.entryCommand}.${ext}`,
151
+ fileTitle: cliTpl`${{ title }} ${{ path: `${cfg.mainName}.${ext}` }} args=(${{ param: cfg.entryArguments.join(' ') }})`,
152
+ file: `${cfg.mainName}.${ext}`,
149
153
  text: [
150
154
  ShellCommands[type].scriptOpen(),
151
155
  ShellCommands[type].chdirScript(),
152
- ShellCommands[type].callCommandWithAllArgs('node', `${cfg.entryCommand}.js`, ...cfg.entryArguments),
156
+ ShellCommands[type].callCommandWithAllArgs('node', `${cfg.mainName}.js`, ...cfg.entryArguments),
153
157
  ].map(x => x.join(' '))
154
158
  }));
155
159
 
@@ -5,11 +5,12 @@ export type CommonPackConfig = {
5
5
  output: string;
6
6
  clean: boolean;
7
7
  ejectFile: string;
8
+ mainName: string;
9
+ mainScripts: boolean;
8
10
  module: string;
9
11
 
10
12
  // Bundle
11
13
  entryPoint: string;
12
- entryCommand: string;
13
14
  entryArguments: string[];
14
15
  minify: boolean;
15
16
  sourcemap: boolean;
@@ -21,6 +22,8 @@ export type CommonPackOptions = {
21
22
  output: OptionConfig<string>;
22
23
  clean: OptionConfig<boolean>;
23
24
  ejectFile: OptionConfig<string>;
25
+ mainName: OptionConfig<string>;
26
+ mainScripts: OptionConfig<boolean>;
24
27
 
25
28
  // Bundle
26
29
  entryPoint: OptionConfig<string>;
@@ -28,7 +28,7 @@ export abstract class BasePackCommand<T extends CommonPackOptions, S extends Com
28
28
  return !!RootIndex.manifest.monoRepo && path.cwd() === RootIndex.manifest.workspacePath;
29
29
  }
30
30
 
31
- get entries(): string[] {
31
+ get entryPoints(): string[] {
32
32
  return RootIndex.findSupport({ filter: x => x.includes('entry.') })
33
33
  .map(x => x.import.replace(/[.][^.]+s$/, ''));
34
34
  }
@@ -38,13 +38,14 @@ export abstract class BasePackCommand<T extends CommonPackOptions, S extends Com
38
38
  }
39
39
 
40
40
  getCommonOptions(): CommonPackOptions {
41
- const entries = this.entries;
42
- const mainEntry = this.entries.find(x => x.startsWith('@travetto/cli'))!;
41
+ const mainEntry = this.entryPoints.find(x => x.startsWith('@travetto/cli'))!;
43
42
  return {
44
43
  workspace: this.option({ short: 'w', desc: 'Workspace for building' }),
45
44
  clean: this.boolOption({ short: 'c', desc: 'Clean workspace', def: true }),
46
- output: this.option({ short: 'o', desc: 'Output Location' }),
47
- entryPoint: this.choiceOption({ short: 'e', desc: 'Entry point', def: mainEntry, choices: entries }),
45
+ output: this.option({ short: 'o', desc: 'Output location' }),
46
+ mainScripts: this.option({ short: 'es', desc: 'Create entry scripts' }),
47
+ mainName: this.option({ short: 'f', desc: 'Main name for build artifact', def: path.basename(mainEntry).replace(/entry[.]/, '') }),
48
+ entryPoint: this.option({ short: 'e', desc: 'Entry point', def: mainEntry }),
48
49
  minify: this.boolOption({ short: 'm', desc: 'Minify output', def: true }),
49
50
  sourcemap: this.boolOption({ short: 'sm', desc: 'Bundle source maps' }),
50
51
  includeSources: this.boolOption({ short: 'is', desc: 'Include source with source maps' }),
@@ -94,7 +95,6 @@ export abstract class BasePackCommand<T extends CommonPackOptions, S extends Com
94
95
 
95
96
  async buildConfig(): Promise<S> {
96
97
  this.cmd.workspace ??= path.resolve(os.tmpdir(), RootIndex.mainModule.sourcePath.replace(/[\/\\: ]/g, '_'));
97
- this.cmd.entryCommand = path.basename(this.cmd.entryPoint).replace(/entry[.]/, '');
98
98
  this.cmd.module = RootIndex.mainModule.name;
99
99
  return this.cmd;
100
100
  }
@@ -5,5 +5,5 @@ FROM ${cfg.dockerImage}
5
5
  WORKDIR /app
6
6
  COPY . .
7
7
  ${cfg.dockerPort.map(port => `EXPOSE ${port}`).join('\n')}
8
- ENTRYPOINT ["/app/${cfg.entryCommand}.sh"]
8
+ ENTRYPOINT ["/app/${cfg.mainName}.sh"]
9
9
  `;