listpage_cli 0.0.187
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/bin/cli.js +219 -0
- package/package.json +25 -0
- package/templates/.gitattributes +14 -0
- package/templates/.github/workflows/ci.yml +27 -0
- package/templates/app-templates/backend-tempalte/.prettierrc +4 -0
- package/templates/app-templates/backend-tempalte/README.md +98 -0
- package/templates/app-templates/backend-tempalte/nest-cli.json +8 -0
- package/templates/app-templates/backend-tempalte/package.json.tmpl +41 -0
- package/templates/app-templates/backend-tempalte/src/app.controller.ts +12 -0
- package/templates/app-templates/backend-tempalte/src/app.module.ts +10 -0
- package/templates/app-templates/backend-tempalte/src/app.service.ts +8 -0
- package/templates/app-templates/backend-tempalte/src/main.ts +8 -0
- package/templates/app-templates/backend-tempalte/tsconfig.build.json +4 -0
- package/templates/app-templates/backend-tempalte/tsconfig.json +25 -0
- package/templates/app-templates/frontend-template/.prettierignore +4 -0
- package/templates/app-templates/frontend-template/.prettierrc +3 -0
- package/templates/app-templates/frontend-template/AGENTS.md +20 -0
- package/templates/app-templates/frontend-template/README.md +36 -0
- package/templates/app-templates/frontend-template/package.json.tmpl +36 -0
- package/templates/app-templates/frontend-template/public/favicon.png +0 -0
- package/templates/app-templates/frontend-template/rsbuild.config.ts +9 -0
- package/templates/app-templates/frontend-template/src/App.css +6 -0
- package/templates/app-templates/frontend-template/src/App.tsx +8 -0
- package/templates/app-templates/frontend-template/src/Layout.tsx +12 -0
- package/templates/app-templates/frontend-template/src/api/config.tsx +25 -0
- package/templates/app-templates/frontend-template/src/api/index.ts +0 -0
- package/templates/app-templates/frontend-template/src/env.d.ts +11 -0
- package/templates/app-templates/frontend-template/src/index.tsx +13 -0
- package/templates/app-templates/frontend-template/src/router/index.tsx +12 -0
- package/templates/app-templates/frontend-template/tsconfig.json +25 -0
- package/templates/common/config/rush/.npmrc-publish +26 -0
- package/templates/common/config/rush/.pnpmfile.cjs +38 -0
- package/templates/common/config/rush/artifactory.json +109 -0
- package/templates/common/config/rush/build-cache.json +160 -0
- package/templates/common/config/rush/cobuild.json +22 -0
- package/templates/common/config/rush/command-line.json +407 -0
- package/templates/common/config/rush/common-versions.json +77 -0
- package/templates/common/config/rush/custom-tips.json +29 -0
- package/templates/common/config/rush/experiments.json +121 -0
- package/templates/common/config/rush/pnpm-config.json +363 -0
- package/templates/common/config/rush/rush-plugins.json +29 -0
- package/templates/common/config/rush/subspaces.json +35 -0
- package/templates/common/config/rush/version-policies.json +102 -0
- package/templates/common/git-hooks/commit-msg.sample +25 -0
- package/templates/rush.json +444 -0
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This configuration file defines custom commands for the "rush" command-line.
|
|
3
|
+
* More documentation is available on the Rush website: https://rushjs.io
|
|
4
|
+
*/
|
|
5
|
+
{
|
|
6
|
+
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json",
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Custom "commands" introduce new verbs for the command-line. To see the help for these
|
|
10
|
+
* example commands, try "rush --help", "rush my-bulk-command --help", or
|
|
11
|
+
* "rush my-global-command --help".
|
|
12
|
+
*/
|
|
13
|
+
"commands": [
|
|
14
|
+
// {
|
|
15
|
+
// /**
|
|
16
|
+
// * (Required) Determines the type of custom command.
|
|
17
|
+
// * Rush's "bulk" commands are invoked separately for each project. By default, the command will run for
|
|
18
|
+
// * every project in the repo, according to the dependency graph (similar to how "rush build" works).
|
|
19
|
+
// * The set of projects can be restricted e.g. using the "--to" or "--from" parameters.
|
|
20
|
+
// */
|
|
21
|
+
// "commandKind": "bulk",
|
|
22
|
+
//
|
|
23
|
+
// /**
|
|
24
|
+
// * (Required) The name that will be typed as part of the command line. This is also the name
|
|
25
|
+
// * of the "scripts" hook in the project's package.json file (if "shellCommand" is not specified).
|
|
26
|
+
// *
|
|
27
|
+
// * The name should be comprised of lower case words separated by hyphens or colons. The name should include an
|
|
28
|
+
// * English verb (e.g. "deploy"). Use a hyphen to separate words (e.g. "upload-docs"). A group of related commands
|
|
29
|
+
// * can be prefixed with a colon (e.g. "docs:generate", "docs:deploy", "docs:serve", etc).
|
|
30
|
+
// *
|
|
31
|
+
// * Note that if the "rebuild" command is overridden here, it becomes separated from the "build" command
|
|
32
|
+
// * and will call the "rebuild" script instead of the "build" script.
|
|
33
|
+
// */
|
|
34
|
+
// "name": "my-bulk-command",
|
|
35
|
+
//
|
|
36
|
+
// /**
|
|
37
|
+
// * (Required) A short summary of the custom command to be shown when printing command line
|
|
38
|
+
// * help, e.g. "rush --help".
|
|
39
|
+
// */
|
|
40
|
+
// "summary": "Example bulk custom command",
|
|
41
|
+
//
|
|
42
|
+
// /**
|
|
43
|
+
// * A detailed description of the command to be shown when printing command line
|
|
44
|
+
// * help (e.g. "rush --help my-command").
|
|
45
|
+
// * If omitted, the "summary" text will be shown instead.
|
|
46
|
+
// *
|
|
47
|
+
// * Whenever you introduce commands/parameters, taking a little time to write meaningful
|
|
48
|
+
// * documentation can make a big difference for the developer experience in your repo.
|
|
49
|
+
// */
|
|
50
|
+
// "description": "This is an example custom command that runs separately for each project",
|
|
51
|
+
//
|
|
52
|
+
// /**
|
|
53
|
+
// * By default, Rush operations acquire a lock file which prevents multiple commands from executing simultaneously
|
|
54
|
+
// * in the same repo folder. (For example, it would be a mistake to run "rush install" and "rush build" at the
|
|
55
|
+
// * same time.) If your command makes sense to run concurrently with other operations,
|
|
56
|
+
// * set "safeForSimultaneousRushProcesses" to true to disable this protection.
|
|
57
|
+
// *
|
|
58
|
+
// * In particular, this is needed for custom scripts that invoke other Rush commands.
|
|
59
|
+
// */
|
|
60
|
+
// "safeForSimultaneousRushProcesses": false,
|
|
61
|
+
//
|
|
62
|
+
// /**
|
|
63
|
+
// * (Optional) If the `shellCommand` field is set for a bulk command, Rush will invoke it for each
|
|
64
|
+
// * selected project; otherwise, Rush will invoke the package.json `"scripts"` entry matching Rush command name.
|
|
65
|
+
// *
|
|
66
|
+
// * The string is the path to a script that will be invoked using the OS shell. The working directory will be
|
|
67
|
+
// * the folder that contains rush.json. If custom parameters are associated with this command, their
|
|
68
|
+
// * values will be appended to the end of this string.
|
|
69
|
+
// */
|
|
70
|
+
// // "shellCommand": "node common/scripts/my-bulk-command.js",
|
|
71
|
+
//
|
|
72
|
+
// /**
|
|
73
|
+
// * (Required) If true, then this command is safe to be run in parallel, i.e. executed
|
|
74
|
+
// * simultaneously for multiple projects. Similar to "rush build", regardless of parallelism
|
|
75
|
+
// * projects will not start processing until their dependencies have completed processing.
|
|
76
|
+
// */
|
|
77
|
+
// "enableParallelism": false,
|
|
78
|
+
//
|
|
79
|
+
// /**
|
|
80
|
+
// * Controls whether weighted operations can start when the total weight would exceed the limit
|
|
81
|
+
// * but is currently below the limit. This setting only applies when "enableParallelism" is true
|
|
82
|
+
// * and operations have a "weight" property configured in their rush-project.json "operationSettings".
|
|
83
|
+
// * Choose true (the default) to favor parallelism. Choose false to strictly stay under the limit.
|
|
84
|
+
// */
|
|
85
|
+
// "allowOversubscription": false,
|
|
86
|
+
//
|
|
87
|
+
// /**
|
|
88
|
+
// * Normally projects will be processed according to their dependency order: a given project will not start
|
|
89
|
+
// * processing the command until all of its dependencies have completed. This restriction doesn't apply for
|
|
90
|
+
// * certain operations, for example a "clean" task that deletes output files. In this case
|
|
91
|
+
// * you can set "ignoreDependencyOrder" to true to increase parallelism.
|
|
92
|
+
// */
|
|
93
|
+
// "ignoreDependencyOrder": false,
|
|
94
|
+
//
|
|
95
|
+
// /**
|
|
96
|
+
// * Normally Rush requires that each project's package.json has a "scripts" entry matching
|
|
97
|
+
// * the custom command name. To disable this check, set "ignoreMissingScript" to true;
|
|
98
|
+
// * projects with a missing definition will be skipped.
|
|
99
|
+
// */
|
|
100
|
+
// "ignoreMissingScript": false,
|
|
101
|
+
//
|
|
102
|
+
// /**
|
|
103
|
+
// * When invoking shell scripts, Rush uses a heuristic to distinguish errors from warnings:
|
|
104
|
+
// * - If the shell script returns a nonzero process exit code, Rush interprets this as "one or more errors".
|
|
105
|
+
// * Error output is displayed in red, and it prevents Rush from attempting to process any downstream projects.
|
|
106
|
+
// * - If the shell script returns a zero process exit code but writes something to its stderr stream,
|
|
107
|
+
// * Rush interprets this as "one or more warnings". Warning output is printed in yellow, but does NOT prevent
|
|
108
|
+
// * Rush from processing downstream projects.
|
|
109
|
+
// *
|
|
110
|
+
// * Thus, warnings do not interfere with local development, but they will cause a CI job to fail, because
|
|
111
|
+
// * the Rush process itself returns a nonzero exit code if there are any warnings or errors. This is by design.
|
|
112
|
+
// * In an active monorepo, we've found that if you allow any warnings in your main branch, it inadvertently
|
|
113
|
+
// * teaches developers to ignore warnings, which quickly leads to a situation where so many "expected" warnings
|
|
114
|
+
// * have accumulated that warnings no longer serve any useful purpose.
|
|
115
|
+
// *
|
|
116
|
+
// * Sometimes a poorly behaved task will write output to stderr even though its operation was successful.
|
|
117
|
+
// * In that case, it's strongly recommended to fix the task. However, as a workaround you can set
|
|
118
|
+
// * allowWarningsInSuccessfulBuild=true, which causes Rush to return a nonzero exit code for errors only.
|
|
119
|
+
// *
|
|
120
|
+
// * Note: The default value is false. In Rush 5.7.x and earlier, the default value was true.
|
|
121
|
+
// */
|
|
122
|
+
// "allowWarningsInSuccessfulBuild": false,
|
|
123
|
+
//
|
|
124
|
+
// /**
|
|
125
|
+
// * If true then this command will be incremental like the built-in "build" command
|
|
126
|
+
// */
|
|
127
|
+
// "incremental": false,
|
|
128
|
+
//
|
|
129
|
+
// /**
|
|
130
|
+
// * (EXPERIMENTAL) Normally Rush terminates after the command finishes. If this option is set to "true" Rush
|
|
131
|
+
// * will instead enter a loop where it watches the file system for changes to the selected projects. Whenever a
|
|
132
|
+
// * change is detected, the command will be invoked again for the changed project and any selected projects that
|
|
133
|
+
// * directly or indirectly depend on it.
|
|
134
|
+
// *
|
|
135
|
+
// * For details, refer to the website article "Using watch mode".
|
|
136
|
+
// */
|
|
137
|
+
// "watchForChanges": false,
|
|
138
|
+
//
|
|
139
|
+
// /**
|
|
140
|
+
// * (EXPERIMENTAL) Disable cache for this action. This may be useful if this command affects state outside of
|
|
141
|
+
// * projects' own folders.
|
|
142
|
+
// */
|
|
143
|
+
// "disableBuildCache": false
|
|
144
|
+
// },
|
|
145
|
+
//
|
|
146
|
+
// {
|
|
147
|
+
// /**
|
|
148
|
+
// * (Required) Determines the type of custom command.
|
|
149
|
+
// * Rush's "global" commands are invoked once for the entire repo.
|
|
150
|
+
// */
|
|
151
|
+
// "commandKind": "global",
|
|
152
|
+
//
|
|
153
|
+
// "name": "my-global-command",
|
|
154
|
+
// "summary": "Example global custom command",
|
|
155
|
+
// "description": "This is an example custom command that runs once for the entire repo",
|
|
156
|
+
//
|
|
157
|
+
// "safeForSimultaneousRushProcesses": false,
|
|
158
|
+
//
|
|
159
|
+
// /**
|
|
160
|
+
// * (Required) A script that will be invoked using the OS shell. The working directory will be
|
|
161
|
+
// * the folder that contains rush.json. If custom parameters are associated with this command, their
|
|
162
|
+
// * values will be appended to the end of this string.
|
|
163
|
+
// */
|
|
164
|
+
// "shellCommand": "node common/scripts/my-global-command.js",
|
|
165
|
+
//
|
|
166
|
+
// /**
|
|
167
|
+
// * If your "shellCommand" script depends on NPM packages, the recommended best practice is
|
|
168
|
+
// * to make it into a regular Rush project that builds using your normal toolchain. In cases where
|
|
169
|
+
// * the command needs to work without first having to run "rush build", the recommended practice
|
|
170
|
+
// * is to publish the project to an NPM registry and use common/scripts/install-run.js to launch it.
|
|
171
|
+
// *
|
|
172
|
+
// * Autoinstallers offer another possibility: They are folders under "common/autoinstallers" with
|
|
173
|
+
// * a package.json file and shrinkwrap file. Rush will automatically invoke the package manager to
|
|
174
|
+
// * install these dependencies before an associated command is invoked. Autoinstallers have the
|
|
175
|
+
// * advantage that they work even in a branch where "rush install" is broken, which makes them a
|
|
176
|
+
// * good solution for Git hook scripts. But they have the disadvantages of not being buildable
|
|
177
|
+
// * projects, and of increasing the overall installation footprint for your monorepo.
|
|
178
|
+
// *
|
|
179
|
+
// * The "autoinstallerName" setting must not contain a path and must be a valid NPM package name.
|
|
180
|
+
// * For example, the name "my-task" would map to "common/autoinstallers/my-task/package.json", and
|
|
181
|
+
// * the "common/autoinstallers/my-task/node_modules/.bin" folder would be added to the shell PATH when
|
|
182
|
+
// * invoking the "shellCommand".
|
|
183
|
+
// */
|
|
184
|
+
// // "autoinstallerName": "my-task"
|
|
185
|
+
// }
|
|
186
|
+
],
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Custom "parameters" introduce new parameters for specified Rush command-line commands.
|
|
190
|
+
* For example, you might define a "--production" parameter for the "rush build" command.
|
|
191
|
+
*/
|
|
192
|
+
"parameters": [
|
|
193
|
+
// {
|
|
194
|
+
// /**
|
|
195
|
+
// * (Required) Determines the type of custom parameter.
|
|
196
|
+
// * A "flag" is a custom command-line parameter whose presence acts as an on/off switch.
|
|
197
|
+
// */
|
|
198
|
+
// "parameterKind": "flag",
|
|
199
|
+
//
|
|
200
|
+
// /**
|
|
201
|
+
// * (Required) The long name of the parameter. It must be lower-case and use dash delimiters.
|
|
202
|
+
// */
|
|
203
|
+
// "longName": "--my-flag",
|
|
204
|
+
//
|
|
205
|
+
// /**
|
|
206
|
+
// * An optional alternative short name for the parameter. It must be a dash followed by a single
|
|
207
|
+
// * lower-case or upper-case letter, which is case-sensitive.
|
|
208
|
+
// *
|
|
209
|
+
// * NOTE: The Rush developers recommend that automation scripts should always use the long name
|
|
210
|
+
// * to improve readability. The short name is only intended as a convenience for humans.
|
|
211
|
+
// * The alphabet letters run out quickly, and are difficult to memorize, so *only* use
|
|
212
|
+
// * a short name if you expect the parameter to be needed very often in everyday operations.
|
|
213
|
+
// */
|
|
214
|
+
// "shortName": "-m",
|
|
215
|
+
//
|
|
216
|
+
// /**
|
|
217
|
+
// * (Required) A long description to be shown in the command-line help.
|
|
218
|
+
// *
|
|
219
|
+
// * Whenever you introduce commands/parameters, taking a little time to write meaningful
|
|
220
|
+
// * documentation can make a big difference for the developer experience in your repo.
|
|
221
|
+
// */
|
|
222
|
+
// "description": "A custom flag parameter that is passed to the scripts that are invoked when building projects",
|
|
223
|
+
//
|
|
224
|
+
// /**
|
|
225
|
+
// * (Required) A list of custom commands and/or built-in Rush commands that this parameter may
|
|
226
|
+
// * be used with. The parameter will be appended to the shell command that Rush invokes.
|
|
227
|
+
// */
|
|
228
|
+
// "associatedCommands": ["build", "rebuild"]
|
|
229
|
+
// },
|
|
230
|
+
//
|
|
231
|
+
// {
|
|
232
|
+
// /**
|
|
233
|
+
// * (Required) Determines the type of custom parameter.
|
|
234
|
+
// * A "string" is a custom command-line parameter whose argument is a single text string.
|
|
235
|
+
// */
|
|
236
|
+
// "parameterKind": "string",
|
|
237
|
+
// "longName": "--my-string",
|
|
238
|
+
// "description": "A custom string parameter for the \"my-global-command\" custom command",
|
|
239
|
+
//
|
|
240
|
+
// "associatedCommands": ["my-global-command"],
|
|
241
|
+
//
|
|
242
|
+
// "argumentName": "SOME_TEXT",
|
|
243
|
+
//
|
|
244
|
+
// /**
|
|
245
|
+
// * If true, this parameter must be included with the command. The default is false.
|
|
246
|
+
// */
|
|
247
|
+
// "required": false
|
|
248
|
+
// },
|
|
249
|
+
//
|
|
250
|
+
// {
|
|
251
|
+
// /**
|
|
252
|
+
// * (Required) Determines the type of custom parameter.
|
|
253
|
+
// * A "choice" is a custom command-line parameter whose argument must be chosen from a list of
|
|
254
|
+
// * allowable alternatives (similar to an enum).
|
|
255
|
+
// */
|
|
256
|
+
// "parameterKind": "choice",
|
|
257
|
+
// "longName": "--my-choice",
|
|
258
|
+
// "description": "A custom choice parameter for the \"my-global-command\" custom command",
|
|
259
|
+
//
|
|
260
|
+
// "associatedCommands": ["my-global-command"],
|
|
261
|
+
// "required": false,
|
|
262
|
+
//
|
|
263
|
+
// /**
|
|
264
|
+
// * If a "defaultValue" is specified, then if the Rush command line is invoked without
|
|
265
|
+
// * this parameter, it will be automatically added with the "defaultValue" as the argument.
|
|
266
|
+
// * The value must be one of the defined alternatives.
|
|
267
|
+
// */
|
|
268
|
+
// "defaultValue": "vanilla",
|
|
269
|
+
//
|
|
270
|
+
// /**
|
|
271
|
+
// * (Required) A list of alternative argument values that can be chosen for this parameter.
|
|
272
|
+
// */
|
|
273
|
+
// "alternatives": [
|
|
274
|
+
// {
|
|
275
|
+
// /**
|
|
276
|
+
// * A token that is one of the alternatives that can be used with the choice parameter,
|
|
277
|
+
// * e.g. "vanilla" in "--flavor vanilla".
|
|
278
|
+
// */
|
|
279
|
+
// "name": "vanilla",
|
|
280
|
+
//
|
|
281
|
+
// /**
|
|
282
|
+
// * A detailed description for the alternative that can be shown in the command-line help.
|
|
283
|
+
// *
|
|
284
|
+
// * Whenever you introduce commands/parameters, taking a little time to write meaningful
|
|
285
|
+
// * documentation can make a big difference for the developer experience in your repo.
|
|
286
|
+
// */
|
|
287
|
+
// "description": "Use the vanilla flavor"
|
|
288
|
+
// },
|
|
289
|
+
//
|
|
290
|
+
// {
|
|
291
|
+
// "name": "chocolate",
|
|
292
|
+
// "description": "Use the chocolate flavor"
|
|
293
|
+
// },
|
|
294
|
+
//
|
|
295
|
+
// {
|
|
296
|
+
// "name": "strawberry",
|
|
297
|
+
// "description": "Use the strawberry flavor"
|
|
298
|
+
// }
|
|
299
|
+
// ]
|
|
300
|
+
// },
|
|
301
|
+
//
|
|
302
|
+
// {
|
|
303
|
+
// /**
|
|
304
|
+
// * (Required) Determines the type of custom parameter.
|
|
305
|
+
// * An "integer" is a custom command-line parameter whose value is an integer number.
|
|
306
|
+
// */
|
|
307
|
+
// "parameterKind": "integer",
|
|
308
|
+
// "longName": "--my-integer",
|
|
309
|
+
// "description": "A custom integer parameter for the \"my-global-command\" custom command",
|
|
310
|
+
//
|
|
311
|
+
// "associatedCommands": ["my-global-command"],
|
|
312
|
+
// "argumentName": "SOME_NUMBER",
|
|
313
|
+
// "required": false
|
|
314
|
+
// },
|
|
315
|
+
//
|
|
316
|
+
// {
|
|
317
|
+
// /**
|
|
318
|
+
// * (Required) Determines the type of custom parameter.
|
|
319
|
+
// * An "integerList" is a custom command-line parameter whose argument is an integer.
|
|
320
|
+
// * The parameter can be specified multiple times to build a list.
|
|
321
|
+
// *
|
|
322
|
+
// * For example, if the parameter name is "--my-integer-list", then the custom command
|
|
323
|
+
// * might be invoked as
|
|
324
|
+
// * `rush my-global-command --my-integer-list 1 --my-integer-list 2 --my-integer-list 3`
|
|
325
|
+
// * and the parsed array would be [1,2,3].
|
|
326
|
+
// */
|
|
327
|
+
// "parameterKind": "integerList",
|
|
328
|
+
// "longName": "--my-integer-list",
|
|
329
|
+
// "description": "A custom integer list parameter for the \"my-global-command\" custom command",
|
|
330
|
+
//
|
|
331
|
+
// "associatedCommands": ["my-global-command"],
|
|
332
|
+
// "argumentName": "SOME_NUMBER",
|
|
333
|
+
// "required": false
|
|
334
|
+
// },
|
|
335
|
+
//
|
|
336
|
+
// {
|
|
337
|
+
// /**
|
|
338
|
+
// * (Required) Determines the type of custom parameter.
|
|
339
|
+
// * An "stringList" is a custom command-line parameter whose argument is a text string.
|
|
340
|
+
// * The parameter can be specified multiple times to build a list.
|
|
341
|
+
// *
|
|
342
|
+
// * For example, if the parameter name is "--my-string-list", then the custom command
|
|
343
|
+
// * might be invoked as
|
|
344
|
+
// * `rush my-global-command --my-string-list A --my-string-list B --my-string-list C`
|
|
345
|
+
// * and the parsed array would be [A,B,C].
|
|
346
|
+
// */
|
|
347
|
+
// "parameterKind": "stringList",
|
|
348
|
+
// "longName": "--my-string-list",
|
|
349
|
+
// "description": "A custom string list parameter for the \"my-global-command\" custom command",
|
|
350
|
+
//
|
|
351
|
+
// "associatedCommands": ["my-global-command"],
|
|
352
|
+
// "argumentName": "SOME_TEXT",
|
|
353
|
+
// "required": false
|
|
354
|
+
// },
|
|
355
|
+
//
|
|
356
|
+
// {
|
|
357
|
+
// /**
|
|
358
|
+
// * (Required) Determines the type of custom parameter.
|
|
359
|
+
// * A "choice" is a custom command-line parameter whose argument must be chosen from a list of
|
|
360
|
+
// * allowable alternatives (similar to an enum).
|
|
361
|
+
// * The parameter can be specified multiple times to build a list.
|
|
362
|
+
// *
|
|
363
|
+
// * For example, if the parameter name is "--my-choice-list", then the custom command
|
|
364
|
+
// * might be invoked as
|
|
365
|
+
// * `rush my-global-command --my-string-list vanilla --my-string-list chocolate`
|
|
366
|
+
// * and the parsed array would be [vanilla,chocolate].
|
|
367
|
+
// */
|
|
368
|
+
// "parameterKind": "choiceList",
|
|
369
|
+
// "longName": "--my-choice-list",
|
|
370
|
+
// "description": "A custom choice list parameter for the \"my-global-command\" custom command",
|
|
371
|
+
//
|
|
372
|
+
// "associatedCommands": ["my-global-command"],
|
|
373
|
+
// "required": false,
|
|
374
|
+
//
|
|
375
|
+
// /**
|
|
376
|
+
// * (Required) A list of alternative argument values that can be chosen for this parameter.
|
|
377
|
+
// */
|
|
378
|
+
// "alternatives": [
|
|
379
|
+
// {
|
|
380
|
+
// /**
|
|
381
|
+
// * A token that is one of the alternatives that can be used with the choice parameter,
|
|
382
|
+
// * e.g. "vanilla" in "--flavor vanilla".
|
|
383
|
+
// */
|
|
384
|
+
// "name": "vanilla",
|
|
385
|
+
//
|
|
386
|
+
// /**
|
|
387
|
+
// * A detailed description for the alternative that can be shown in the command-line help.
|
|
388
|
+
// *
|
|
389
|
+
// * Whenever you introduce commands/parameters, taking a little time to write meaningful
|
|
390
|
+
// * documentation can make a big difference for the developer experience in your repo.
|
|
391
|
+
// */
|
|
392
|
+
// "description": "Use the vanilla flavor"
|
|
393
|
+
// },
|
|
394
|
+
//
|
|
395
|
+
// {
|
|
396
|
+
// "name": "chocolate",
|
|
397
|
+
// "description": "Use the chocolate flavor"
|
|
398
|
+
// },
|
|
399
|
+
//
|
|
400
|
+
// {
|
|
401
|
+
// "name": "strawberry",
|
|
402
|
+
// "description": "Use the strawberry flavor"
|
|
403
|
+
// }
|
|
404
|
+
// ]
|
|
405
|
+
// }
|
|
406
|
+
]
|
|
407
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This configuration file specifies NPM dependency version selections that affect all projects
|
|
3
|
+
* in a Rush repo. More documentation is available on the Rush website: https://rushjs.io
|
|
4
|
+
*/
|
|
5
|
+
{
|
|
6
|
+
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/common-versions.schema.json",
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A table that specifies a "preferred version" for a given NPM package. This feature is typically used
|
|
10
|
+
* to hold back an indirect dependency to a specific older version, or to reduce duplication of indirect dependencies.
|
|
11
|
+
*
|
|
12
|
+
* The "preferredVersions" value can be any SemVer range specifier (e.g. "~1.2.3"). Rush injects these values into
|
|
13
|
+
* the "dependencies" field of the top-level common/temp/package.json, which influences how the package manager
|
|
14
|
+
* will calculate versions. The specific effect depends on your package manager. Generally it will have no
|
|
15
|
+
* effect on an incompatible or already constrained SemVer range. If you are using PNPM, similar effects can be
|
|
16
|
+
* achieved using the pnpmfile.js hook. See the Rush documentation for more details.
|
|
17
|
+
*
|
|
18
|
+
* After modifying this field, it's recommended to run "rush update --full" so that the package manager
|
|
19
|
+
* will recalculate all version selections.
|
|
20
|
+
*/
|
|
21
|
+
"preferredVersions": {
|
|
22
|
+
/**
|
|
23
|
+
* When someone asks for "^1.0.0" make sure they get "1.2.3" when working in this repo,
|
|
24
|
+
* instead of the latest version.
|
|
25
|
+
*/
|
|
26
|
+
// "some-library": "1.2.3"
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* When set to true, for all projects in the repo, all dependencies will be automatically added as preferredVersions,
|
|
31
|
+
* except in cases where different projects specify different version ranges for a given dependency. For older
|
|
32
|
+
* package managers, this tended to reduce duplication of indirect dependencies. However, it can sometimes cause
|
|
33
|
+
* trouble for indirect dependencies with incompatible peerDependencies ranges.
|
|
34
|
+
*
|
|
35
|
+
* The default value is true. If you're encountering installation errors related to peer dependencies,
|
|
36
|
+
* it's recommended to set this to false.
|
|
37
|
+
*
|
|
38
|
+
* After modifying this field, it's recommended to run "rush update --full" so that the package manager
|
|
39
|
+
* will recalculate all version selections.
|
|
40
|
+
*/
|
|
41
|
+
// "implicitlyPreferredVersions": false,
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* If you would like the version specifiers for your dependencies to be consistent, then
|
|
45
|
+
* uncomment this line. This is effectively similar to running "rush check" before any
|
|
46
|
+
* of the following commands:
|
|
47
|
+
*
|
|
48
|
+
* rush install, rush update, rush link, rush version, rush publish
|
|
49
|
+
*
|
|
50
|
+
* In some cases you may want this turned on, but need to allow certain packages to use a different
|
|
51
|
+
* version. In those cases, you will need to add an entry to the "allowedAlternativeVersions"
|
|
52
|
+
* section of the common-versions.json.
|
|
53
|
+
*
|
|
54
|
+
* In the case that subspaces is enabled, this setting will take effect at a subspace level.
|
|
55
|
+
*/
|
|
56
|
+
// "ensureConsistentVersions": true,
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The "rush check" command can be used to enforce that every project in the repo must specify
|
|
60
|
+
* the same SemVer range for a given dependency. However, sometimes exceptions are needed.
|
|
61
|
+
* The allowedAlternativeVersions table allows you to list other SemVer ranges that will be
|
|
62
|
+
* accepted by "rush check" for a given dependency.
|
|
63
|
+
*
|
|
64
|
+
* IMPORTANT: THIS TABLE IS FOR *ADDITIONAL* VERSION RANGES THAT ARE ALTERNATIVES TO THE
|
|
65
|
+
* USUAL VERSION (WHICH IS INFERRED BY LOOKING AT ALL PROJECTS IN THE REPO).
|
|
66
|
+
* This design avoids unnecessary churn in this file.
|
|
67
|
+
*/
|
|
68
|
+
"allowedAlternativeVersions": {
|
|
69
|
+
/**
|
|
70
|
+
* For example, allow some projects to use an older TypeScript compiler
|
|
71
|
+
* (in addition to whatever "usual" version is being used by other projects in the repo):
|
|
72
|
+
*/
|
|
73
|
+
// "typescript": [
|
|
74
|
+
// "~2.4.0"
|
|
75
|
+
// ]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This configuration file allows repo maintainers to configure extra details to be
|
|
3
|
+
* printed alongside certain Rush messages. More documentation is available on the
|
|
4
|
+
* Rush website: https://rushjs.io
|
|
5
|
+
*/
|
|
6
|
+
{
|
|
7
|
+
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/custom-tips.schema.json",
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Custom tips allow you to annotate Rush's console messages with advice tailored for
|
|
11
|
+
* your specific monorepo.
|
|
12
|
+
*/
|
|
13
|
+
"customTips": [
|
|
14
|
+
// {
|
|
15
|
+
// /**
|
|
16
|
+
// * (REQUIRED) An identifier indicating a message that may be printed by Rush.
|
|
17
|
+
// * If that message is printed, then this custom tip will be shown.
|
|
18
|
+
// * The list of available tip identifiers can be found on this page:
|
|
19
|
+
// * https://rushjs.io/pages/maintainer/custom_tips/
|
|
20
|
+
// */
|
|
21
|
+
// "tipId": "TIP_RUSH_INCONSISTENT_VERSIONS",
|
|
22
|
+
//
|
|
23
|
+
// /**
|
|
24
|
+
// * (REQUIRED) The message text to be displayed for this tip.
|
|
25
|
+
// */
|
|
26
|
+
// "message": "For additional troubleshooting information, refer this wiki article:\n\nhttps://intranet.contoso.com/docs/pnpm-mismatch"
|
|
27
|
+
// }
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This configuration file allows repo maintainers to enable and disable experimental
|
|
3
|
+
* Rush features. More documentation is available on the Rush website: https://rushjs.io
|
|
4
|
+
*/
|
|
5
|
+
{
|
|
6
|
+
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/experiments.schema.json",
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* By default, 'rush install' passes --no-prefer-frozen-lockfile to 'pnpm install'.
|
|
10
|
+
* Set this option to true to pass '--frozen-lockfile' instead for faster installs.
|
|
11
|
+
*/
|
|
12
|
+
// "usePnpmFrozenLockfileForRushInstall": true,
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* By default, 'rush update' passes --no-prefer-frozen-lockfile to 'pnpm install'.
|
|
16
|
+
* Set this option to true to pass '--prefer-frozen-lockfile' instead to minimize shrinkwrap changes.
|
|
17
|
+
*/
|
|
18
|
+
// "usePnpmPreferFrozenLockfileForRushUpdate": true,
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* By default, 'rush update' runs as a single operation.
|
|
22
|
+
* Set this option to true to instead update the lockfile with `--lockfile-only`, then perform a `--frozen-lockfile` install.
|
|
23
|
+
* Necessary when using the `afterAllResolved` hook in .pnpmfile.cjs.
|
|
24
|
+
*/
|
|
25
|
+
// "usePnpmLockfileOnlyThenFrozenLockfileForRushUpdate": true,
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* If using the 'preventManualShrinkwrapChanges' option, restricts the hash to only include the layout of external dependencies.
|
|
29
|
+
* Used to allow links between workspace projects or the addition/removal of references to existing dependency versions to not
|
|
30
|
+
* cause hash changes.
|
|
31
|
+
*/
|
|
32
|
+
// "omitImportersFromPreventManualShrinkwrapChanges": true,
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* If true, the chmod field in temporary project tar headers will not be normalized.
|
|
36
|
+
* This normalization can help ensure consistent tarball integrity across platforms.
|
|
37
|
+
*/
|
|
38
|
+
// "noChmodFieldInTarHeaderNormalization": true,
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* If true, build caching will respect the allowWarningsInSuccessfulBuild flag and cache builds with warnings.
|
|
42
|
+
* This will not replay warnings from the cached build.
|
|
43
|
+
*/
|
|
44
|
+
// "buildCacheWithAllowWarningsInSuccessfulBuild": true,
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* If true, build skipping will respect the allowWarningsInSuccessfulBuild flag and skip builds with warnings.
|
|
48
|
+
* This will not replay warnings from the skipped build.
|
|
49
|
+
*/
|
|
50
|
+
// "buildSkipWithAllowWarningsInSuccessfulBuild": true,
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* If true, perform a clean install after when running `rush install` or `rush update` if the
|
|
54
|
+
* `.npmrc` file has changed since the last install.
|
|
55
|
+
*/
|
|
56
|
+
// "cleanInstallAfterNpmrcChanges": true,
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* If true, print the outputs of shell commands defined in event hooks to the console.
|
|
60
|
+
*/
|
|
61
|
+
// "printEventHooksOutputToConsole": true,
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* If true, Rush will not allow node_modules in the repo folder or in parent folders.
|
|
65
|
+
*/
|
|
66
|
+
// "forbidPhantomResolvableNodeModulesFolders": true,
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* (UNDER DEVELOPMENT) For certain installation problems involving peer dependencies, PNPM cannot
|
|
70
|
+
* correctly satisfy versioning requirements without installing duplicate copies of a package inside the
|
|
71
|
+
* node_modules folder. This poses a problem for "workspace:*" dependencies, as they are normally
|
|
72
|
+
* installed by making a symlink to the local project source folder. PNPM's "injected dependencies"
|
|
73
|
+
* feature provides a model for copying the local project folder into node_modules, however copying
|
|
74
|
+
* must occur AFTER the dependency project is built and BEFORE the consuming project starts to build.
|
|
75
|
+
* The "pnpm-sync" tool manages this operation; see its documentation for details.
|
|
76
|
+
* Enable this experiment if you want "rush" and "rushx" commands to resync injected dependencies
|
|
77
|
+
* by invoking "pnpm-sync" during the build.
|
|
78
|
+
*/
|
|
79
|
+
// "usePnpmSyncForInjectedDependencies": true,
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* If set to true, Rush will generate a `project-impact-graph.yaml` file in the repository root during `rush update`.
|
|
83
|
+
*/
|
|
84
|
+
// "generateProjectImpactGraphDuringRushUpdate": true,
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* If true, when running in watch mode, Rush will check for phase scripts named `_phase:<name>:ipc` and run them instead
|
|
88
|
+
* of `_phase:<name>` if they exist. The created child process will be provided with an IPC channel and expected to persist
|
|
89
|
+
* across invocations.
|
|
90
|
+
*/
|
|
91
|
+
// "useIPCScriptsInWatchMode": true,
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* (UNDER DEVELOPMENT) The Rush alerts feature provides a way to send announcements to engineers
|
|
95
|
+
* working in the monorepo, by printing directly in the user's shell window when they invoke Rush commands.
|
|
96
|
+
* This ensures that important notices will be seen by anyone doing active development, since people often
|
|
97
|
+
* ignore normal discussion group messages or don't know to subscribe.
|
|
98
|
+
*/
|
|
99
|
+
// "rushAlerts": true,
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* When using cobuilds, this experiment allows uncacheable operations to benefit from cobuild orchestration without using the build cache.
|
|
104
|
+
*/
|
|
105
|
+
// "allowCobuildWithoutCache": true,
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* By default, rush perform a full scan of the entire repository. For example, Rush runs `git status` to check for local file changes.
|
|
109
|
+
* When this toggle is enabled, Rush will only scan specific paths, significantly speeding up Git operations.
|
|
110
|
+
*/
|
|
111
|
+
// "enableSubpathScan": true,
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Rush has a policy that normally requires Rush projects to specify `workspace:*` in package.json when depending
|
|
115
|
+
* on other projects in the workspace, unless they are explicitly declared as `decoupledLocalDependencies`
|
|
116
|
+
* in rush.json. Enabling this experiment will remove that requirement for dependencies belonging to a different
|
|
117
|
+
* subspace. This is useful for large product groups who work in separate subspaces and generally prefer to consume
|
|
118
|
+
* each other's packages via the NPM registry.
|
|
119
|
+
*/
|
|
120
|
+
// "exemptDecoupledDependenciesBetweenSubspaces": false
|
|
121
|
+
}
|