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,363 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This configuration file provides settings specific to the PNPM package manager.
|
|
3
|
+
* More documentation is available on the Rush website: https://rushjs.io
|
|
4
|
+
*
|
|
5
|
+
* Rush normally looks for this file in `common/config/rush/pnpm-config.json`. However,
|
|
6
|
+
* if `subspacesEnabled` is true in subspaces.json, then Rush will instead first look
|
|
7
|
+
* for `common/config/subspaces/<name>/pnpm-config.json`. (If the file exists in both places,
|
|
8
|
+
* then the file under `common/config/rush` is ignored.)
|
|
9
|
+
*/
|
|
10
|
+
{
|
|
11
|
+
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/pnpm-config.schema.json",
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* If true, then `rush install` and `rush update` will use the PNPM workspaces feature
|
|
15
|
+
* to perform the install, instead of the old model where Rush generated the symlinks
|
|
16
|
+
* for each projects's node_modules folder.
|
|
17
|
+
*
|
|
18
|
+
* When using workspaces, Rush will generate a `common/temp/pnpm-workspace.yaml` file referencing
|
|
19
|
+
* all local projects to install. Rush will also generate a `.pnpmfile.cjs` shim which implements
|
|
20
|
+
* Rush-specific features such as preferred versions. The user's `common/config/rush/.pnpmfile.cjs`
|
|
21
|
+
* is invoked by the shim.
|
|
22
|
+
*
|
|
23
|
+
* This option is strongly recommended. The default value is false.
|
|
24
|
+
*/
|
|
25
|
+
"useWorkspaces": true,
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* This setting determines how PNPM chooses version numbers during `rush update`.
|
|
29
|
+
* For example, suppose `lib-x@3.0.0` depends on `"lib-y": "^1.2.3"` whose latest major
|
|
30
|
+
* releases are `1.8.9` and `2.3.4`. The resolution mode `lowest-direct` might choose
|
|
31
|
+
* `lib-y@1.2.3`, wheres `highest` will choose 1.8.9, and `time-based` will pick the
|
|
32
|
+
* highest compatible version at the time when `lib-x@3.0.0` itself was published (ensuring
|
|
33
|
+
* that the version could have been tested by the maintainer of "lib-x"). For local workspace
|
|
34
|
+
* projects, `time-based` instead works like `lowest-direct`, avoiding upgrades unless
|
|
35
|
+
* they are explicitly requested. Although `time-based` is the most robust option, it may be
|
|
36
|
+
* slightly slower with registries such as npmjs.com that have not implemented an optimization.
|
|
37
|
+
*
|
|
38
|
+
* IMPORTANT: Be aware that PNPM 8.0.0 initially defaulted to `lowest-direct` instead of
|
|
39
|
+
* `highest`, but PNPM reverted this decision in 8.6.12 because it caused confusion for users.
|
|
40
|
+
* Rush version 5.106.0 and newer avoids this confusion by consistently defaulting to
|
|
41
|
+
* `highest` when `resolutionMode` is not explicitly set in pnpm-config.json or .npmrc,
|
|
42
|
+
* regardless of your PNPM version.
|
|
43
|
+
*
|
|
44
|
+
* PNPM documentation: https://pnpm.io/npmrc#resolution-mode
|
|
45
|
+
*
|
|
46
|
+
* Possible values are: `highest`, `time-based`, and `lowest-direct`.
|
|
47
|
+
* The default is `highest`.
|
|
48
|
+
*/
|
|
49
|
+
// "resolutionMode": "time-based",
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* This setting determines whether PNPM will automatically install (non-optional)
|
|
53
|
+
* missing peer dependencies instead of reporting an error. Doing so conveniently
|
|
54
|
+
* avoids the need to specify peer versions in package.json, but in a large monorepo
|
|
55
|
+
* this often creates worse problems. The reason is that peer dependency behavior
|
|
56
|
+
* is inherently complicated, and it is easier to troubleshoot consequences of an explicit
|
|
57
|
+
* version than an invisible heuristic. The original NPM RFC discussion pointed out
|
|
58
|
+
* some other problems with this feature: https://github.com/npm/rfcs/pull/43
|
|
59
|
+
|
|
60
|
+
* IMPORTANT: Without Rush, the setting defaults to true for PNPM 8 and newer; however,
|
|
61
|
+
* as of Rush version 5.109.0 the default is always false unless `autoInstallPeers`
|
|
62
|
+
* is specified in pnpm-config.json or .npmrc, regardless of your PNPM version.
|
|
63
|
+
|
|
64
|
+
* PNPM documentation: https://pnpm.io/npmrc#auto-install-peers
|
|
65
|
+
|
|
66
|
+
* The default value is false.
|
|
67
|
+
*/
|
|
68
|
+
// "autoInstallPeers": false,
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* The minimum number of minutes that must pass after a version is published before pnpm will install it.
|
|
72
|
+
* This setting helps reduce the risk of installing compromised packages, as malicious releases are typically
|
|
73
|
+
* discovered and removed within a short time frame.
|
|
74
|
+
*
|
|
75
|
+
* For example, the following setting ensures that only packages released at least one day ago can be installed:
|
|
76
|
+
*
|
|
77
|
+
* "minimumReleaseAge": 1440
|
|
78
|
+
*
|
|
79
|
+
* (SUPPORTED ONLY IN PNPM 10.16.0 AND NEWER)
|
|
80
|
+
*
|
|
81
|
+
* PNPM documentation: https://pnpm.io/settings#minimumreleaseage
|
|
82
|
+
*
|
|
83
|
+
* The default value is 0 (disabled).
|
|
84
|
+
*/
|
|
85
|
+
// "minimumReleaseAge": 1440,
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* An array of package names or patterns to exclude from the minimumReleaseAge check.
|
|
89
|
+
* This allows certain trusted packages to be installed immediately after publication.
|
|
90
|
+
* Patterns are supported using glob syntax (e.g., "@myorg/*" to exclude all packages from an organization).
|
|
91
|
+
*
|
|
92
|
+
* For example:
|
|
93
|
+
*
|
|
94
|
+
* "minimumReleaseAgeExclude": ["webpack", "react", "@myorg/*"]
|
|
95
|
+
*
|
|
96
|
+
* (SUPPORTED ONLY IN PNPM 10.16.0 AND NEWER)
|
|
97
|
+
*
|
|
98
|
+
* PNPM documentation: https://pnpm.io/settings#minimumreleaseageexclude
|
|
99
|
+
*/
|
|
100
|
+
// "minimumReleaseAgeExclude": ["@myorg/*"],
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* If true, then Rush will add the `--strict-peer-dependencies` command-line parameter when
|
|
104
|
+
* invoking PNPM. This causes `rush update` to fail if there are unsatisfied peer dependencies,
|
|
105
|
+
* which is an invalid state that can cause build failures or incompatible dependency versions.
|
|
106
|
+
* (For historical reasons, JavaScript package managers generally do not treat this invalid
|
|
107
|
+
* state as an error.)
|
|
108
|
+
*
|
|
109
|
+
* PNPM documentation: https://pnpm.io/npmrc#strict-peer-dependencies
|
|
110
|
+
*
|
|
111
|
+
* The default value is false to avoid legacy compatibility issues.
|
|
112
|
+
* It is strongly recommended to set `strictPeerDependencies=true`.
|
|
113
|
+
*/
|
|
114
|
+
// "strictPeerDependencies": true,
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Environment variables that will be provided to PNPM.
|
|
118
|
+
*/
|
|
119
|
+
// "environmentVariables": {
|
|
120
|
+
// "NODE_OPTIONS": {
|
|
121
|
+
// "value": "--max-old-space-size=4096",
|
|
122
|
+
// "override": false
|
|
123
|
+
// }
|
|
124
|
+
// },
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Specifies the location of the PNPM store. There are two possible values:
|
|
128
|
+
*
|
|
129
|
+
* - `local` - use the `pnpm-store` folder in the current configured temp folder:
|
|
130
|
+
* `common/temp/pnpm-store` by default.
|
|
131
|
+
* - `global` - use PNPM's global store, which has the benefit of being shared
|
|
132
|
+
* across multiple repo folders, but the disadvantage of less isolation for builds
|
|
133
|
+
* (for example, bugs or incompatibilities when two repos use different releases of PNPM)
|
|
134
|
+
*
|
|
135
|
+
* In both cases, the store path can be overridden by the environment variable `RUSH_PNPM_STORE_PATH`.
|
|
136
|
+
*
|
|
137
|
+
* The default value is `local`.
|
|
138
|
+
*/
|
|
139
|
+
// "pnpmStore": "global",
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* If true, then `rush install` will report an error if manual modifications
|
|
143
|
+
* were made to the PNPM shrinkwrap file without running `rush update` afterwards.
|
|
144
|
+
*
|
|
145
|
+
* This feature protects against accidental inconsistencies that may be introduced
|
|
146
|
+
* if the PNPM shrinkwrap file (`pnpm-lock.yaml`) is manually edited. When this
|
|
147
|
+
* feature is enabled, `rush update` will append a hash to the file as a YAML comment,
|
|
148
|
+
* and then `rush update` and `rush install` will validate the hash. Note that this
|
|
149
|
+
* does not prohibit manual modifications, but merely requires `rush update` be run
|
|
150
|
+
* afterwards, ensuring that PNPM can report or repair any potential inconsistencies.
|
|
151
|
+
*
|
|
152
|
+
* To temporarily disable this validation when invoking `rush install`, use the
|
|
153
|
+
* `--bypass-policy` command-line parameter.
|
|
154
|
+
*
|
|
155
|
+
* The default value is false.
|
|
156
|
+
*/
|
|
157
|
+
// "preventManualShrinkwrapChanges": true,
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* When a project uses `workspace:` to depend on another Rush project, PNPM normally installs
|
|
161
|
+
* it by creating a symlink under `node_modules`. This generally works well, but in certain
|
|
162
|
+
* cases such as differing `peerDependencies` versions, symlinking may cause trouble
|
|
163
|
+
* such as incorrectly satisfied versions. For such cases, the dependency can be declared
|
|
164
|
+
* as "injected", causing PNPM to copy its built output into `node_modules` like a real
|
|
165
|
+
* install from a registry. Details here: https://rushjs.io/pages/advanced/injected_deps/
|
|
166
|
+
*
|
|
167
|
+
* When using Rush subspaces, these sorts of versioning problems are much more likely if
|
|
168
|
+
* `workspace:` refers to a project from a different subspace. This is because the symlink
|
|
169
|
+
* would point to a separate `node_modules` tree installed by a different PNPM lockfile.
|
|
170
|
+
* A comprehensive solution is to enable `alwaysInjectDependenciesFromOtherSubspaces`,
|
|
171
|
+
* which automatically treats all projects from other subspaces as injected dependencies
|
|
172
|
+
* without having to manually configure them.
|
|
173
|
+
*
|
|
174
|
+
* NOTE: Use carefully -- excessive file copying can slow down the `rush install` and
|
|
175
|
+
* `pnpm-sync` operations if too many dependencies become injected.
|
|
176
|
+
*
|
|
177
|
+
* The default value is false.
|
|
178
|
+
*/
|
|
179
|
+
// "alwaysInjectDependenciesFromOtherSubspaces": false,
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Defines the policies to be checked for the `pnpm-lock.yaml` file.
|
|
183
|
+
*/
|
|
184
|
+
"pnpmLockfilePolicies": {
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* This policy will cause "rush update" to report an error if `pnpm-lock.yaml` contains
|
|
188
|
+
* any SHA1 integrity hashes.
|
|
189
|
+
*
|
|
190
|
+
* For each NPM dependency, `pnpm-lock.yaml` normally stores an `integrity` hash. Although
|
|
191
|
+
* its main purpose is to detect corrupted or truncated network requests, this hash can also
|
|
192
|
+
* serve as a security fingerprint to protect against attacks that would substitute a
|
|
193
|
+
* malicious tarball, for example if a misconfigured .npmrc caused a machine to accidentally
|
|
194
|
+
* download a matching package name+version from npmjs.com instead of the private NPM registry.
|
|
195
|
+
* NPM originally used a SHA1 hash; this was insecure because an attacker can too easily craft
|
|
196
|
+
* a tarball with a matching fingerprint. For this reason, NPM later deprecated SHA1 and
|
|
197
|
+
* instead adopted a cryptographically strong SHA512 hash. Nonetheless, SHA1 hashes can
|
|
198
|
+
* occasionally reappear during "rush update", for example due to missing metadata fallbacks
|
|
199
|
+
* (https://github.com/orgs/pnpm/discussions/6194) or an incompletely migrated private registry.
|
|
200
|
+
* The `disallowInsecureSha1` policy prevents this, avoiding potential security/compliance alerts.
|
|
201
|
+
*/
|
|
202
|
+
// "disallowInsecureSha1": {
|
|
203
|
+
// /**
|
|
204
|
+
// * Enables the "disallowInsecureSha1" policy. The default value is false.
|
|
205
|
+
// */
|
|
206
|
+
// "enabled": true,
|
|
207
|
+
//
|
|
208
|
+
// /**
|
|
209
|
+
// * In rare cases, a private NPM registry may continue to serve SHA1 hashes for very old
|
|
210
|
+
// * package versions, perhaps due to a caching issue or database migration glitch. To avoid
|
|
211
|
+
// * having to disable the "disallowInsecureSha1" policy for the entire monorepo, the problematic
|
|
212
|
+
// * package versions can be individually ignored. The "exemptPackageVersions" key is the
|
|
213
|
+
// * package name, and the array value lists exact version numbers to be ignored.
|
|
214
|
+
// */
|
|
215
|
+
// "exemptPackageVersions": {
|
|
216
|
+
// "example1": ["1.0.0"],
|
|
217
|
+
// "example2": ["2.0.0", "2.0.1"]
|
|
218
|
+
// }
|
|
219
|
+
// }
|
|
220
|
+
},
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* The "globalOverrides" setting provides a simple mechanism for overriding version selections
|
|
224
|
+
* for all dependencies of all projects in the monorepo workspace. The settings are copied
|
|
225
|
+
* into the `pnpm.overrides` field of the `common/temp/package.json` file that is generated
|
|
226
|
+
* by Rush during installation.
|
|
227
|
+
*
|
|
228
|
+
* Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by
|
|
229
|
+
* `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`,
|
|
230
|
+
* and `globalOverrides` has lowest precedence.
|
|
231
|
+
*
|
|
232
|
+
* PNPM documentation: https://pnpm.io/package_json#pnpmoverrides
|
|
233
|
+
*/
|
|
234
|
+
"globalOverrides": {
|
|
235
|
+
// "example1": "^1.0.0",
|
|
236
|
+
// "example2": "npm:@company/example2@^1.0.0"
|
|
237
|
+
},
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* The `globalPeerDependencyRules` setting provides various settings for suppressing validation errors
|
|
241
|
+
* that are reported during installation with `strictPeerDependencies=true`. The settings are copied
|
|
242
|
+
* into the `pnpm.peerDependencyRules` field of the `common/temp/package.json` file that is generated
|
|
243
|
+
* by Rush during installation.
|
|
244
|
+
*
|
|
245
|
+
* Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by
|
|
246
|
+
* `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`,
|
|
247
|
+
* and `globalOverrides` has lowest precedence.
|
|
248
|
+
*
|
|
249
|
+
* https://pnpm.io/package_json#pnpmpeerdependencyrules
|
|
250
|
+
*/
|
|
251
|
+
"globalPeerDependencyRules": {
|
|
252
|
+
// "ignoreMissing": ["@eslint/*"],
|
|
253
|
+
// "allowedVersions": { "react": "17" },
|
|
254
|
+
// "allowAny": ["@babel/*"]
|
|
255
|
+
},
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* The `globalPackageExtension` setting provides a way to patch arbitrary package.json fields
|
|
259
|
+
* for any PNPM dependency of the monorepo. The settings are copied into the `pnpm.packageExtensions`
|
|
260
|
+
* field of the `common/temp/package.json` file that is generated by Rush during installation.
|
|
261
|
+
* The `globalPackageExtension` setting has similar capabilities as `.pnpmfile.cjs` but without
|
|
262
|
+
* the downsides of an executable script (nondeterminism, unreliable caching, performance concerns).
|
|
263
|
+
*
|
|
264
|
+
* Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by
|
|
265
|
+
* `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`,
|
|
266
|
+
* and `globalOverrides` has lowest precedence.
|
|
267
|
+
*
|
|
268
|
+
* PNPM documentation: https://pnpm.io/package_json#pnpmpackageextensions
|
|
269
|
+
*/
|
|
270
|
+
"globalPackageExtensions": {
|
|
271
|
+
// "fork-ts-checker-webpack-plugin": {
|
|
272
|
+
// "dependencies": {
|
|
273
|
+
// "@babel/core": "1"
|
|
274
|
+
// },
|
|
275
|
+
// "peerDependencies": {
|
|
276
|
+
// "eslint": ">= 6"
|
|
277
|
+
// },
|
|
278
|
+
// "peerDependenciesMeta": {
|
|
279
|
+
// "eslint": {
|
|
280
|
+
// "optional": true
|
|
281
|
+
// }
|
|
282
|
+
// }
|
|
283
|
+
// }
|
|
284
|
+
},
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* The `globalNeverBuiltDependencies` setting suppresses the `preinstall`, `install`, and `postinstall`
|
|
288
|
+
* lifecycle events for the specified NPM dependencies. This is useful for scripts with poor practices
|
|
289
|
+
* such as downloading large binaries without retries or attempting to invoke OS tools such as
|
|
290
|
+
* a C++ compiler. (PNPM's terminology refers to these lifecycle events as "building" a package;
|
|
291
|
+
* it has nothing to do with build system operations such as `rush build` or `rushx build`.)
|
|
292
|
+
* The settings are copied into the `pnpm.neverBuiltDependencies` field of the `common/temp/package.json`
|
|
293
|
+
* file that is generated by Rush during installation.
|
|
294
|
+
*
|
|
295
|
+
* PNPM documentation: https://pnpm.io/package_json#pnpmneverbuiltdependencies
|
|
296
|
+
*/
|
|
297
|
+
"globalNeverBuiltDependencies": [
|
|
298
|
+
// "fsevents"
|
|
299
|
+
],
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* The `globalIgnoredOptionalDependencies` setting suppresses the installation of optional NPM
|
|
303
|
+
* dependencies specified in the list. This is useful when certain optional dependencies are
|
|
304
|
+
* not needed in your environment, such as platform-specific packages or dependencies that
|
|
305
|
+
* fail during installation but are not critical to your project.
|
|
306
|
+
* These settings are copied into the `pnpm.overrides` field of the `common/temp/package.json`
|
|
307
|
+
* file that is generated by Rush during installation, instructing PNPM to ignore the specified
|
|
308
|
+
* optional dependencies.
|
|
309
|
+
*
|
|
310
|
+
* PNPM documentation: https://pnpm.io/package_json#pnpmignoredoptionaldependencies
|
|
311
|
+
*/
|
|
312
|
+
"globalIgnoredOptionalDependencies": [
|
|
313
|
+
// "fsevents"
|
|
314
|
+
],
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* The `globalAllowedDeprecatedVersions` setting suppresses installation warnings for package
|
|
318
|
+
* versions that the NPM registry reports as being deprecated. This is useful if the
|
|
319
|
+
* deprecated package is an indirect dependency of an external package that has not released a fix.
|
|
320
|
+
* The settings are copied into the `pnpm.allowedDeprecatedVersions` field of the `common/temp/package.json`
|
|
321
|
+
* file that is generated by Rush during installation.
|
|
322
|
+
*
|
|
323
|
+
* PNPM documentation: https://pnpm.io/package_json#pnpmalloweddeprecatedversions
|
|
324
|
+
*
|
|
325
|
+
* If you are working to eliminate a deprecated version, it's better to specify `allowedDeprecatedVersions`
|
|
326
|
+
* in the package.json file for individual Rush projects.
|
|
327
|
+
*/
|
|
328
|
+
"globalAllowedDeprecatedVersions": {
|
|
329
|
+
// "request": "*"
|
|
330
|
+
},
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* (THIS FIELD IS MACHINE GENERATED) The "globalPatchedDependencies" field is updated automatically
|
|
335
|
+
* by the `rush-pnpm patch-commit` command. It is a dictionary, where the key is an NPM package name
|
|
336
|
+
* and exact version, and the value is a relative path to the associated patch file.
|
|
337
|
+
*
|
|
338
|
+
* PNPM documentation: https://pnpm.io/package_json#pnpmpatcheddependencies
|
|
339
|
+
*/
|
|
340
|
+
"globalPatchedDependencies": { },
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* (USE AT YOUR OWN RISK) This is a free-form property bag that will be copied into
|
|
344
|
+
* the `common/temp/package.json` file that is generated by Rush during installation.
|
|
345
|
+
* This provides a way to experiment with new PNPM features. These settings will override
|
|
346
|
+
* any other Rush configuration associated with a given JSON field except for `.pnpmfile.cjs`.
|
|
347
|
+
*
|
|
348
|
+
* USAGE OF THIS SETTING IS NOT SUPPORTED BY THE RUSH MAINTAINERS AND MAY CAUSE RUSH
|
|
349
|
+
* TO MALFUNCTION. If you encounter a missing PNPM setting that you believe should
|
|
350
|
+
* be supported, please create a GitHub issue or PR. Note that Rush does not aim to
|
|
351
|
+
* support every possible PNPM setting, but rather to promote a battle-tested installation
|
|
352
|
+
* strategy that is known to provide a good experience for large teams with lots of projects.
|
|
353
|
+
*/
|
|
354
|
+
"unsupportedPackageJsonSettings": {
|
|
355
|
+
// "dependencies": {
|
|
356
|
+
// "not-a-good-practice": "*"
|
|
357
|
+
// },
|
|
358
|
+
// "scripts": {
|
|
359
|
+
// "do-something": "echo Also not a good practice"
|
|
360
|
+
// },
|
|
361
|
+
// "pnpm": { "futurePnpmFeature": true }
|
|
362
|
+
}
|
|
363
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This configuration file manages Rush's plugin feature.
|
|
3
|
+
*/
|
|
4
|
+
{
|
|
5
|
+
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugins.schema.json",
|
|
6
|
+
"plugins": [
|
|
7
|
+
/**
|
|
8
|
+
* Each item configures a plugin to be loaded by Rush.
|
|
9
|
+
*/
|
|
10
|
+
// {
|
|
11
|
+
// /**
|
|
12
|
+
// * The name of the NPM package that provides the plugin.
|
|
13
|
+
// */
|
|
14
|
+
// "packageName": "@scope/my-rush-plugin",
|
|
15
|
+
// /**
|
|
16
|
+
// * The name of the plugin. This can be found in the "pluginName"
|
|
17
|
+
// * field of the "rush-plugin-manifest.json" file in the NPM package folder.
|
|
18
|
+
// */
|
|
19
|
+
// "pluginName": "my-plugin-name",
|
|
20
|
+
// /**
|
|
21
|
+
// * The name of a Rush autoinstaller that will be used for installation, which
|
|
22
|
+
// * can be created using "rush init-autoinstaller". Add the plugin's NPM package
|
|
23
|
+
// * to the package.json "dependencies" of your autoinstaller, then run
|
|
24
|
+
// * "rush update-autoinstaller".
|
|
25
|
+
// */
|
|
26
|
+
// "autoinstallerName": "rush-plugins"
|
|
27
|
+
// }
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This configuration file manages the experimental "subspaces" feature for Rush,
|
|
3
|
+
* which allows multiple PNPM lockfiles to be used in a single Rush workspace.
|
|
4
|
+
* For full documentation, please see https://rushjs.io
|
|
5
|
+
*/
|
|
6
|
+
{
|
|
7
|
+
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/subspaces.schema.json",
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Set this flag to "true" to enable usage of subspaces.
|
|
11
|
+
*/
|
|
12
|
+
"subspacesEnabled": false,
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* (DEPRECATED) This is a temporary workaround for migrating from an earlier prototype
|
|
16
|
+
* of this feature: https://github.com/microsoft/rushstack/pull/3481
|
|
17
|
+
* It allows subspaces with only one project to store their config files in the project folder.
|
|
18
|
+
*/
|
|
19
|
+
"splitWorkspaceCompatibility": false,
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* When a command such as "rush update" is invoked without the "--subspace" or "--to"
|
|
23
|
+
* parameters, Rush will install all subspaces. In a huge monorepo with numerous subspaces,
|
|
24
|
+
* this would be extremely slow. Set "preventSelectingAllSubspaces" to true to avoid this
|
|
25
|
+
* mistake by always requiring selection parameters for commands such as "rush update".
|
|
26
|
+
*/
|
|
27
|
+
"preventSelectingAllSubspaces": false,
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The list of subspace names, which should be lowercase alphanumeric words separated by
|
|
31
|
+
* hyphens, for example "my-subspace". The corresponding config files will have paths
|
|
32
|
+
* such as "common/config/subspaces/my-subspace/package-lock.yaml".
|
|
33
|
+
*/
|
|
34
|
+
"subspaceNames": []
|
|
35
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is configuration file is used for advanced publishing configurations with Rush.
|
|
3
|
+
* More documentation is available on the Rush website: https://rushjs.io
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A list of version policy definitions. A "version policy" is a custom package versioning
|
|
8
|
+
* strategy that affects "rush change", "rush version", and "rush publish". The strategy applies
|
|
9
|
+
* to a set of projects that are specified using the "versionPolicyName" field in rush.json.
|
|
10
|
+
*/
|
|
11
|
+
[
|
|
12
|
+
// {
|
|
13
|
+
// /**
|
|
14
|
+
// * (Required) Indicates the kind of version policy being defined ("lockStepVersion" or "individualVersion").
|
|
15
|
+
// *
|
|
16
|
+
// * The "lockStepVersion" mode specifies that the projects will use "lock-step versioning". This
|
|
17
|
+
// * strategy is appropriate for a set of packages that act as selectable components of a
|
|
18
|
+
// * unified product. The entire set of packages are always published together, and always share
|
|
19
|
+
// * the same NPM version number. When the packages depend on other packages in the set, the
|
|
20
|
+
// * SemVer range is usually restricted to a single version.
|
|
21
|
+
// */
|
|
22
|
+
// "definitionName": "lockStepVersion",
|
|
23
|
+
//
|
|
24
|
+
// /**
|
|
25
|
+
// * (Required) The name that will be used for the "versionPolicyName" field in rush.json.
|
|
26
|
+
// * This name is also used command-line parameters such as "--version-policy"
|
|
27
|
+
// * and "--to-version-policy".
|
|
28
|
+
// */
|
|
29
|
+
// "policyName": "MyBigFramework",
|
|
30
|
+
//
|
|
31
|
+
// /**
|
|
32
|
+
// * (Required) The current version. All packages belonging to the set should have this version
|
|
33
|
+
// * in the current branch. When bumping versions, Rush uses this to determine the next version.
|
|
34
|
+
// * (The "version" field in package.json is NOT considered.)
|
|
35
|
+
// */
|
|
36
|
+
// "version": "1.0.0",
|
|
37
|
+
//
|
|
38
|
+
// /**
|
|
39
|
+
// * (Required) The type of bump that will be performed when publishing the next release.
|
|
40
|
+
// * When creating a release branch in Git, this field should be updated according to the
|
|
41
|
+
// * type of release.
|
|
42
|
+
// *
|
|
43
|
+
// * Valid values are: "prerelease", "preminor", "minor", "patch", "major"
|
|
44
|
+
// */
|
|
45
|
+
// "nextBump": "prerelease",
|
|
46
|
+
//
|
|
47
|
+
// /**
|
|
48
|
+
// * (Optional) If specified, all packages in the set share a common CHANGELOG.md file.
|
|
49
|
+
// * This file is stored with the specified "main" project, which must be a member of the set.
|
|
50
|
+
// *
|
|
51
|
+
// * If this field is omitted, then a separate CHANGELOG.md file will be maintained for each
|
|
52
|
+
// * package in the set.
|
|
53
|
+
// */
|
|
54
|
+
// "mainProject": "my-app",
|
|
55
|
+
//
|
|
56
|
+
// /**
|
|
57
|
+
// * (Optional) If enabled, the "rush change" command will prompt the user for their email address
|
|
58
|
+
// * and include it in the JSON change files. If an organization maintains multiple repos, tracking
|
|
59
|
+
// * this contact information may be useful for a service that automatically upgrades packages and
|
|
60
|
+
// * needs to notify engineers whose change may be responsible for a downstream build break. It might
|
|
61
|
+
// * also be useful for crediting contributors. Rush itself does not do anything with the collected
|
|
62
|
+
// * email addresses. The default value is "false".
|
|
63
|
+
// */
|
|
64
|
+
// // "includeEmailInChangeFile": true
|
|
65
|
+
// },
|
|
66
|
+
//
|
|
67
|
+
// {
|
|
68
|
+
// /**
|
|
69
|
+
// * (Required) Indicates the kind of version policy being defined ("lockStepVersion" or "individualVersion").
|
|
70
|
+
// *
|
|
71
|
+
// * The "individualVersion" mode specifies that the projects will use "individual versioning".
|
|
72
|
+
// * This is the typical NPM model where each package has an independent version number
|
|
73
|
+
// * and CHANGELOG.md file. Although a single CI definition is responsible for publishing the
|
|
74
|
+
// * packages, they otherwise don't have any special relationship. The version bumping will
|
|
75
|
+
// * depend on how developers answer the "rush change" questions for each package that
|
|
76
|
+
// * is changed.
|
|
77
|
+
// */
|
|
78
|
+
// "definitionName": "individualVersion",
|
|
79
|
+
//
|
|
80
|
+
// "policyName": "MyRandomLibraries",
|
|
81
|
+
//
|
|
82
|
+
// /**
|
|
83
|
+
// * (Optional) This can be used to enforce that all packages in the set must share a common
|
|
84
|
+
// * major version number, e.g. because they are from the same major release branch.
|
|
85
|
+
// * It can also be used to discourage people from accidentally making "MAJOR" SemVer changes
|
|
86
|
+
// * inappropriately. The minor/patch version parts will be bumped independently according
|
|
87
|
+
// * to the types of changes made to each project, according to the "rush change" command.
|
|
88
|
+
// */
|
|
89
|
+
// "lockedMajor": 3,
|
|
90
|
+
//
|
|
91
|
+
// /**
|
|
92
|
+
// * (Optional) When publishing is managed by Rush, by default the "rush change" command will
|
|
93
|
+
// * request changes for any projects that are modified by a pull request. These change entries
|
|
94
|
+
// * will produce a CHANGELOG.md file. If you author your CHANGELOG.md manually or announce updates
|
|
95
|
+
// * in some other way, set "exemptFromRushChange" to true to tell "rush change" to ignore the projects
|
|
96
|
+
// * belonging to this version policy.
|
|
97
|
+
// */
|
|
98
|
+
// "exemptFromRushChange": false,
|
|
99
|
+
//
|
|
100
|
+
// // "includeEmailInChangeFile": true
|
|
101
|
+
// }
|
|
102
|
+
]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
#
|
|
3
|
+
# This is an example Git hook for use with Rush. To enable this hook, rename this file
|
|
4
|
+
# to "commit-msg" and then run "rush install", which will copy it from common/git-hooks
|
|
5
|
+
# to the .git/hooks folder.
|
|
6
|
+
#
|
|
7
|
+
# TO LEARN MORE ABOUT GIT HOOKS
|
|
8
|
+
#
|
|
9
|
+
# The Git documentation is here: https://git-scm.com/docs/githooks
|
|
10
|
+
# Some helpful resources: https://githooks.com
|
|
11
|
+
#
|
|
12
|
+
# ABOUT THIS EXAMPLE
|
|
13
|
+
#
|
|
14
|
+
# The commit-msg hook is called by "git commit" with one argument, the name of the file
|
|
15
|
+
# that has the commit message. The hook should exit with non-zero status after issuing
|
|
16
|
+
# an appropriate message if it wants to stop the commit. The hook is allowed to edit
|
|
17
|
+
# the commit message file.
|
|
18
|
+
|
|
19
|
+
# This example enforces that commit message should contain a minimum amount of
|
|
20
|
+
# description text.
|
|
21
|
+
if [ `cat $1 | wc -w` -lt 3 ]; then
|
|
22
|
+
echo ""
|
|
23
|
+
echo "Invalid commit message: The message must contain at least 3 words."
|
|
24
|
+
exit 1
|
|
25
|
+
fi
|