1 | #!/usr/bin/env node
|
2 | "use strict";
|
3 | const meow = require('meow');
|
4 | const updateNotifier = require('update-notifier');
|
5 |
|
6 | const cli = meow(`
|
7 | Usage
|
8 | $ ngm <command> [options]
|
9 |
|
10 | Commands:
|
11 | ----------------------------------------------------------------
|
12 | build - build typescript projects
|
13 | Usage:
|
14 | $ tsm build -p src
|
15 | Mandatory options:
|
16 | -p DIRECTORY, Compile the project in the given directory
|
17 | --project DIRECTORY
|
18 | Optional options (default: false):
|
19 | --no-local Use version numbers from local submodules when building package.json,
|
20 | usually needed only for publish command
|
21 | -w, --watch Watch input files
|
22 | --verbose Enable verbose mode
|
23 | --clean Cleaning dist folders
|
24 | It removes folder, so you will need to rerun commands like 'link', etc...
|
25 | --skip-bundles Works only in --watch mode, allows to skip umd bundling
|
26 |
|
27 | ----------------------------------------------------------------
|
28 | link - runs 'npm link' in each submodule dist folder
|
29 | Usage:
|
30 | $ tsm link -p src
|
31 | Hint:
|
32 | 'npm link' doesn't track adding new files, please rerun this command if file was added/removed
|
33 | Mandatory options:
|
34 | -p DIRECTORY, Compile the project in the given directory
|
35 | --project DIRECTORY
|
36 | Optional options:
|
37 | --no-deep By default local submodules will be linked to each other
|
38 | --here Links submodules to root package
|
39 |
|
40 | ----------------------------------------------------------------
|
41 | publish - runs 'npm publish' in each dist submodule folders, how it works:
|
42 |
|
43 | 1. Runs git checks (you should be on master branch, without changes in working tree, and up to date with remote history
|
44 | --any-branch - disables on 'master' check
|
45 | --skip-git-check - to skip all git checks
|
46 |
|
47 | 2. Performs clean install of dependecies
|
48 | --yarn - to install dependencies with 'yarn'
|
49 | --skip-cleanup - to not delete 'node_modules' before installing
|
50 |
|
51 | 3. Running tests (npm test) from root folder
|
52 |
|
53 | 4. Running e2e test (npm run e2e), all submodules will be built in local mode and linked (npm link)
|
54 |
|
55 | 5. Publishing, with separate clean build
|
56 | --skip-publish - skip publishing and clean build, in case you want to double check something
|
57 | --tag - same as 'npm publish --tag next', use in case you want new release without changing 'latest' npm tag
|
58 | --access - same as 'npm publish --access p*'
|
59 | Steps 1-4 can be skipped with --yolo flag
|
60 |
|
61 | ----------------------------------------------------------------
|
62 | version - runs 'npm version <version>' in each submodule and than in root folder
|
63 | Usage:
|
64 | $ tsm version prerelease -p src
|
65 | Mandatory options:
|
66 | -m MESSAGE, Commit message when creating a version commit
|
67 | --message MESSAGE
|
68 | --no-git-tag-version Do not create a version commit and tag (applied only to root folder)
|
69 | Optional options:
|
70 | --skip-push Skip pushing of version commit and tags
|
71 | ----------------------------------------------------------------
|
72 |
|
73 | `, {
|
74 | alias: {
|
75 | m: 'message',
|
76 | p: 'project',
|
77 | w: 'watch',
|
78 | v: 'version',
|
79 | local: 'use-local-dependencies alias'
|
80 | }
|
81 | });
|
82 | updateNotifier({ pkg: cli.pkg }).notify();
|
83 | if (cli.flags.version) {
|
84 | console.log(`${cli.pkg.name} ${cli.pkg.version}`);
|
85 | process.exit();
|
86 | }
|
87 |
|
88 | if (cli.input.length === 0) {
|
89 | cli.showHelp(0);
|
90 | }
|
91 |
|
92 | if (!cli.flags.project) {
|
93 | console.error('Please provide path to your projects source folder, `-p DIR` ');
|
94 | process.exit(1);
|
95 | }
|
96 | const ngm_1 = require("../lib/ngm");
|
97 | Promise
|
98 | .resolve()
|
99 | .then(() => {
|
100 |
|
101 | cli.flags.verbose = cli.flags.verbose !== false;
|
102 | return ngm_1.main(cli.input[0], cli);
|
103 | })
|
104 | .catch(err => {
|
105 | console.error(`\n` && err.stderr || '');
|
106 | console.error(`\n`, err);
|
107 | process.exit(1);
|
108 | });
|
109 |
|
\ | No newline at end of file |