This commit is contained in:
Pete Gonzalez 2023-07-08 10:43:08 -07:00
Родитель 9c02c44e8c
Коммит cef5058c45
11 изменённых файлов: 471 добавлений и 14930 удалений

5
.gitignore поставляемый
Просмотреть файл

@ -58,6 +58,11 @@ jspm_packages/
# OS X temporary files # OS X temporary files
.DS_Store .DS_Store
# IntelliJ IDEA project files; if you want to commit IntelliJ settings, this recipe may be helpful:
# https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
.idea/
*.iml
# Rush temporary files # Rush temporary files
common/deploy/ common/deploy/
common/temp/ common/temp/

Просмотреть файл

@ -46,6 +46,14 @@
*/ */
"artifactoryWebsiteUrl": "", "artifactoryWebsiteUrl": "",
/**
* Uncomment this line to specify the type of credential to save in the user's ~/.npmrc file.
* The default is "password", which means the user's API token will be traded in for an
* npm password specific to that registry. Optionally you can specify "authToken", which
* will save the user's API token as credentials instead.
*/
// "credentialType": "password",
/** /**
* These settings allow the "rush setup" interactive prompts to be customized, for * These settings allow the "rush setup" interactive prompts to be customized, for
* example with messages specific to your team or configuration. Specify an empty string * example with messages specific to your team or configuration. Specify an empty string
@ -80,6 +88,16 @@
* button if you haven't already done so previously." * button if you haven't already done so previously."
*/ */
// "locateApiKey": "" // "locateApiKey": ""
/**
* Overrides the message that normally prompts:
* "What is your Artifactory user name?"
*/
// "userNamePrompt": ""
/**
* Overrides the message that normally prompts:
* "What is your Artifactory API key?"
*/
// "apiKeyPrompt": ""
} }
} }
} }

Просмотреть файл

@ -21,7 +21,14 @@
/** /**
* Setting this property overrides the cache entry ID. If this property is set, it must contain * Setting this property overrides the cache entry ID. If this property is set, it must contain
* a [hash] token. It may also contain a [projectName] or a [projectName:normalize] token. * a [hash] token.
*
* Other available tokens:
* - [projectName]
* - [projectName:normalize]
* - [phaseName]
* - [phaseName:normalize]
* - [phaseName:trimPrefix]
*/ */
// "cacheEntryNamePattern": "[projectName:normalize]-[phaseName:normalize]-[hash]" // "cacheEntryNamePattern": "[projectName:normalize]-[phaseName:normalize]-[hash]"
@ -58,25 +65,66 @@
*/ */
"amazonS3Configuration": { "amazonS3Configuration": {
/** /**
* (Required unless s3Endpoint is specified) The name of the bucket to use for build cache (e.g. "my-bucket"). * (Required unless s3Endpoint is specified) The name of the bucket to use for build cache.
* Example: "my-bucket"
*/ */
// "s3Bucket": "my-bucket", // "s3Bucket": "my-bucket",
/** /**
* (Required unless s3Bucket is specified) The Amazon S3 endpoint of the bucket to use for build cache (e.g. "my-bucket.s3.us-east-2.amazonaws.com" or "http://localhost:9000"). * (Required unless s3Bucket is specified) The Amazon S3 endpoint of the bucket to use for build cache.
* This shold not include any path, use the s3Prefix to set the path. * This should not include any path; use the s3Prefix to set the path.
* Examples: "my-bucket.s3.us-east-2.amazonaws.com" or "http://localhost:9000"
*/ */
// "s3Endpoint": "https://my-bucket.s3.us-east-2.amazonaws.com", // "s3Endpoint": "https://my-bucket.s3.us-east-2.amazonaws.com",
/** /**
* (Required) The Amazon S3 region of the bucket to use for build cache (e.g. "us-east-1"). * (Required) The Amazon S3 region of the bucket to use for build cache.
* Example: "us-east-1"
*/ */
// "s3Region": "us-east-1", // "s3Region": "us-east-1",
/** /**
* An optional prefix ("folder") for cache items. Should not start with / * An optional prefix ("folder") for cache items. It should not start with "/".
*/ */
// "s3Prefix": "my-prefix", // "s3Prefix": "my-prefix",
/** /**
* If set to true, allow writing to the cache. Defaults to false. * If set to true, allow writing to the cache. Defaults to false.
*/ */
// "isCacheWriteAllowed": true // "isCacheWriteAllowed": true
},
/**
* Use this configuration with "cacheProvider"="http"
*/
"httpConfiguration": {
/**
* (Required) The URL of the server that stores the caches.
* Example: "https://build-cacches.example.com/"
*/
// "url": "https://build-cacches.example.com/",
/**
* (Optional) The HTTP method to use when writing to the cache (defaults to PUT).
* Should be one of PUT, POST, or PATCH.
* Example: "PUT"
*/
// "uploadMethod": "PUT",
/**
* (Optional) HTTP headers to pass to the cache server.
* Example: { "X-HTTP-Company-Id": "109283" }
*/
// "headers": {},
/**
* (Optional) Shell command that prints the authorization token needed to communicate with the
* cache server, and exits with exit code 0. This command will be executed from the root of
* the monorepo.
* Example: { "exec": "node", "args": ["common/scripts/auth.js"] }
*/
// "tokenHandler": { "exec": "node", "args": ["common/scripts/auth.js"] },
/**
* (Optional) Prefix for cache keys.
* Example: "my-company-"
*/
// "cacheKeyPrefix": "",
/**
* (Optional) If set to true, allow writing to the cache. Defaults to false.
*/
// "isCacheWriteAllowed": true
} }
} }

Просмотреть файл

@ -14,17 +14,16 @@
// { // {
// /** // /**
// * (Required) Determines the type of custom command. // * (Required) Determines the type of custom command.
// * Rush's "bulk" commands are invoked separately for each project. Rush will look in // * Rush's "bulk" commands are invoked separately for each project. By default, the command will run for
// * each project's package.json file for a "scripts" entry whose name matches the // * every project in the repo, according to the dependency graph (similar to how "rush build" works).
// * command name. By default, the command will run for every project in the repo,
// * according to the dependency graph (similar to how "rush build" works).
// * The set of projects can be restricted e.g. using the "--to" or "--from" parameters. // * The set of projects can be restricted e.g. using the "--to" or "--from" parameters.
// */ // */
// "commandKind": "bulk", // "commandKind": "bulk",
// //
// /** // /**
// * (Required) The name that will be typed as part of the command line. This is also the name // * (Required) The name that will be typed as part of the command line. This is also the name
// * of the "scripts" hook in the project's package.json file. // * of the "scripts" hook in the project's package.json file (if "shellCommand" is not specified).
// *
// * The name should be comprised of lower case words separated by hyphens or colons. The name should include an // * The name should be comprised of lower case words separated by hyphens or colons. The name should include an
// * English verb (e.g. "deploy"). Use a hyphen to separate words (e.g. "upload-docs"). A group of related commands // * English verb (e.g. "deploy"). Use a hyphen to separate words (e.g. "upload-docs"). A group of related commands
// * can be prefixed with a colon (e.g. "docs:generate", "docs:deploy", "docs:serve", etc). // * can be prefixed with a colon (e.g. "docs:generate", "docs:deploy", "docs:serve", etc).
@ -61,6 +60,16 @@
// "safeForSimultaneousRushProcesses": false, // "safeForSimultaneousRushProcesses": false,
// //
// /** // /**
// * (Optional) If the `shellCommand` field is set for a bulk command, Rush will invoke it for each
// * selected project; otherwise, Rush will invoke the package.json `"scripts"` entry matching Rush command name.
// *
// * The string is the path to a script that will be invoked using the OS shell. The working directory will be
// * the folder that contains rush.json. If custom parameters are associated with this command, their
// * values will be appended to the end of this string.
// */
// // "shellCommand": "node common/scripts/my-bulk-command.js",
//
// /**
// * (Required) If true, then this command is safe to be run in parallel, i.e. executed // * (Required) If true, then this command is safe to be run in parallel, i.e. executed
// * simultaneously for multiple projects. Similar to "rush build", regardless of parallelism // * simultaneously for multiple projects. Similar to "rush build", regardless of parallelism
// * projects will not start processing until their dependencies have completed processing. // * projects will not start processing until their dependencies have completed processing.
@ -227,7 +236,7 @@
// { // {
// /** // /**
// * (Required) Determines the type of custom parameter. // * (Required) Determines the type of custom parameter.
// * A "string" is a custom command-line parameter whose value is a simple text string. // * A "string" is a custom command-line parameter whose argument is a single text string.
// */ // */
// "parameterKind": "string", // "parameterKind": "string",
// "longName": "--my-string", // "longName": "--my-string",
@ -235,13 +244,6 @@
// //
// "associatedCommands": ["my-global-command"], // "associatedCommands": ["my-global-command"],
// //
// /**
// * The name of the argument, which will be shown in the command-line help.
// *
// * For example, if the parameter name is '--count" and the argument name is "NUMBER",
// * then the command-line help would display "--count NUMBER". The argument name must
// * be comprised of upper-case letters, numbers, and underscores. It should be kept short.
// */
// "argumentName": "SOME_TEXT", // "argumentName": "SOME_TEXT",
// //
// /** // /**
@ -254,24 +256,19 @@
// /** // /**
// * (Required) Determines the type of custom parameter. // * (Required) Determines the type of custom parameter.
// * A "choice" is a custom command-line parameter whose argument must be chosen from a list of // * A "choice" is a custom command-line parameter whose argument must be chosen from a list of
// * allowable alternatives. // * allowable alternatives (similar to an enum).
// */ // */
// "parameterKind": "choice", // "parameterKind": "choice",
// "longName": "--my-choice", // "longName": "--my-choice",
// "description": "A custom choice parameter for the \"my-global-command\" custom command", // "description": "A custom choice parameter for the \"my-global-command\" custom command",
// //
// "associatedCommands": ["my-global-command"], // "associatedCommands": ["my-global-command"],
//
// /**
// * If true, this parameter must be included with the command. The default is false.
// */
// "required": false, // "required": false,
// //
// /** // /**
// * Normally if a parameter is omitted from the command line, it will not be passed // * If a "defaultValue" is specified, then if the Rush command line is invoked without
// * to the shell command. this value will be inserted by default. Whereas if a "defaultValue" // * this parameter, it will be automatically added with the "defaultValue" as the argument.
// * is defined, the parameter will always be passed to the shell command, and will use the // * The value must be one of the defined alternatives.
// * default value if unspecified. The value must be one of the defined alternatives.
// */ // */
// "defaultValue": "vanilla", // "defaultValue": "vanilla",
// //
@ -292,7 +289,112 @@
// * Whenever you introduce commands/parameters, taking a little time to write meaningful // * Whenever you introduce commands/parameters, taking a little time to write meaningful
// * documentation can make a big difference for the developer experience in your repo. // * documentation can make a big difference for the developer experience in your repo.
// */ // */
// "description": "Use the vanilla flavor (the default)" // "description": "Use the vanilla flavor"
// },
//
// {
// "name": "chocolate",
// "description": "Use the chocolate flavor"
// },
//
// {
// "name": "strawberry",
// "description": "Use the strawberry flavor"
// }
// ]
// },
//
// {
// /**
// * (Required) Determines the type of custom parameter.
// * An "integer" is a custom command-line parameter whose value is an integer number.
// */
// "parameterKind": "integer",
// "longName": "--my-integer",
// "description": "A custom integer parameter for the \"my-global-command\" custom command",
//
// "associatedCommands": ["my-global-command"],
// "argumentName": "SOME_NUMBER",
// "required": false
// },
//
// {
// /**
// * (Required) Determines the type of custom parameter.
// * An "integerList" is a custom command-line parameter whose argument is an integer.
// * The parameter can be specified multiple times to build a list.
// *
// * For example, if the parameter name is "--my-integer-list", then the custom command
// * might be invoked as
// * `rush my-global-command --my-integer-list 1 --my-integer-list 2 --my-integer-list 3`
// * and the parsed array would be [1,2,3].
// */
// "parameterKind": "integerList",
// "longName": "--my-integer-list",
// "description": "A custom integer list parameter for the \"my-global-command\" custom command",
//
// "associatedCommands": ["my-global-command"],
// "argumentName": "SOME_NUMBER",
// "required": false
// },
//
// {
// /**
// * (Required) Determines the type of custom parameter.
// * An "stringList" is a custom command-line parameter whose argument is a text string.
// * The parameter can be specified multiple times to build a list.
// *
// * For example, if the parameter name is "--my-string-list", then the custom command
// * might be invoked as
// * `rush my-global-command --my-string-list A --my-string-list B --my-string-list C`
// * and the parsed array would be [A,B,C].
// */
// "parameterKind": "stringList",
// "longName": "--my-string-list",
// "description": "A custom string list parameter for the \"my-global-command\" custom command",
//
// "associatedCommands": ["my-global-command"],
// "argumentName": "SOME_TEXT",
// "required": false
// },
//
// {
// /**
// * (Required) Determines the type of custom parameter.
// * A "choice" is a custom command-line parameter whose argument must be chosen from a list of
// * allowable alternatives (similar to an enum).
// * The parameter can be specified multiple times to build a list.
// *
// * For example, if the parameter name is "--my-choice-list", then the custom command
// * might be invoked as
// * `rush my-global-command --my-string-list vanilla --my-string-list chocolate`
// * and the parsed array would be [vanilla,chocolate].
// */
// "parameterKind": "choiceList",
// "longName": "--my-choice-list",
// "description": "A custom choice list parameter for the \"my-global-command\" custom command",
//
// "associatedCommands": ["my-global-command"],
// "required": false,
//
// /**
// * (Required) A list of alternative argument values that can be chosen for this parameter.
// */
// "alternatives": [
// {
// /**
// * A token that is one of the alternatives that can be used with the choice parameter,
// * e.g. "vanilla" in "--flavor vanilla".
// */
// "name": "vanilla",
//
// /**
// * A detailed description for the alternative that can be shown in the command-line help.
// *
// * Whenever you introduce commands/parameters, taking a little time to write meaningful
// * documentation can make a big difference for the developer experience in your repo.
// */
// "description": "Use the vanilla flavor"
// }, // },
// //
// { // {

Просмотреть файл

@ -40,5 +40,21 @@
* If true, the phased commands feature is enabled. To use this feature, create a "phased" command * If true, the phased commands feature is enabled. To use this feature, create a "phased" command
* in common/config/rush/command-line.json. * in common/config/rush/command-line.json.
*/ */
// "phasedCommands": true // "phasedCommands": true,
/**
* If true, perform a clean install after when running `rush install` or `rush update` if the
* `.npmrc` file has changed since the last install.
*/
// "cleanInstallAfterNpmrcChanges": true,
/**
* If true, print the outputs of shell commands defined in event hooks to the console.
*/
// "printEventHooksOutputToConsole": true,
/**
* If true, Rush will not allow node_modules in the repo folder or in parent folders.
*/
// "forbidPhantomResolvableNodeModulesFolders": true
} }

Просмотреть файл

@ -0,0 +1,204 @@
/**
* This configuration file provides settings specific to the PNPM package manager.
* More documentation is available on the Rush website: https://rushjs.io
*/
{
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/pnpm-config.schema.json",
/**
* If true, then `rush install` and `rush update` will use the PNPM workspaces feature
* to perform the install, instead of the old model where Rush generated the symlinks
* for each projects's node_modules folder.
*
* When using workspaces, Rush will generate a `common/temp/pnpm-workspace.yaml` file referencing
* all local projects to install. Rush will also generate a `.pnpmfile.cjs` shim which implements
* Rush-specific features such as preferred versions. The user's `common/config/rush/.pnpmfile.cjs`
* is invoked by the shim.
*
* This option is strongly recommended. The default value is false.
*/
"useWorkspaces": true,
/**
* If true, then Rush will add the `--strict-peer-dependencies` command-line parameter when
* invoking PNPM. This causes `rush update` to fail if there are unsatisfied peer dependencies,
* which is an invalid state that can cause build failures or incompatible dependency versions.
* (For historical reasons, JavaScript package managers generally do not treat this invalid
* state as an error.)
*
* PNPM documentation: https://pnpm.io/npmrc#strict-peer-dependencies
*
* The default value is false to avoid legacy compatibility issues.
* It is strongly recommended to set `strictPeerDependencies=true`.
*/
"strictPeerDependencies": true,
/**
* Environment variables that will be provided to PNPM.
*/
// "environmentVariables": {
// "NODE_OPTIONS": {
// "value": "--max-old-space-size=4096",
// "override": false
// }
// },
/**
* Specifies the location of the PNPM store. There are two possible values:
*
* - `local` - use the `pnpm-store` folder in the current configured temp folder:
* `common/temp/pnpm-store` by default.
* - `global` - use PNPM's global store, which has the benefit of being shared
* across multiple repo folders, but the disadvantage of less isolation for builds
* (for example, bugs or incompatibilities when two repos use different releases of PNPM)
*
* In both cases, the store path can be overridden by the environment variable `RUSH_PNPM_STORE_PATH`.
*
* The default value is `local`.
*/
// "pnpmStore": "global",
/**
* If true, then `rush install` will report an error if manual modifications
* were made to the PNPM shrinkwrap file without running `rush update` afterwards.
*
* This feature protects against accidental inconsistencies that may be introduced
* if the PNPM shrinkwrap file (`pnpm-lock.yaml`) is manually edited. When this
* feature is enabled, `rush update` will append a hash to the file as a YAML comment,
* and then `rush update` and `rush install` will validate the hash. Note that this
* does not prohibit manual modifications, but merely requires `rush update` be run
* afterwards, ensuring that PNPM can report or repair any potential inconsistencies.
*
* To temporarily disable this validation when invoking `rush install`, use the
* `--bypass-policy` command-line parameter.
*
* The default value is false.
*/
// "preventManualShrinkwrapChanges": true,
/**
* The "globalOverrides" setting provides a simple mechanism for overriding version selections
* for all dependencies of all projects in the monorepo workspace. The settings are copied
* into the `pnpm.overrides` field of the `common/temp/package.json` file that is generated
* by Rush during installation.
*
* Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by
* `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`,
* and `globalOverrides` has lowest precedence.
*
* PNPM documentation: https://pnpm.io/package_json#pnpmoverrides
*/
"globalOverrides": {
// "example1": "^1.0.0",
// "example2": "npm:@company/example2@^1.0.0"
},
/**
* The `globalPeerDependencyRules` setting provides various settings for suppressing validation errors
* that are reported during installation with `strictPeerDependencies=true`. The settings are copied
* into the `pnpm.peerDependencyRules` field of the `common/temp/package.json` file that is generated
* by Rush during installation.
*
* Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by
* `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`,
* and `globalOverrides` has lowest precedence.
*
* https://pnpm.io/package_json#pnpmpeerdependencyrules
*/
"globalPeerDependencyRules": {
// "ignoreMissing": ["@eslint/*"],
// "allowedVersions": { "react": "17" },
// "allowAny": ["@babel/*"]
},
/**
* The `globalPackageExtension` setting provides a way to patch arbitrary package.json fields
* for any PNPM dependency of the monorepo. The settings are copied into the `pnpm.packageExtensions`
* field of the `common/temp/package.json` file that is generated by Rush during installation.
* The `globalPackageExtension` setting has similar capabilities as `.pnpmfile.cjs` but without
* the downsides of an executable script (nondeterminism, unreliable caching, performance concerns).
*
* Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by
* `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`,
* and `globalOverrides` has lowest precedence.
*
* PNPM documentation: https://pnpm.io/package_json#pnpmpackageextensions
*/
"globalPackageExtensions": {
// "fork-ts-checker-webpack-plugin": {
// "dependencies": {
// "@babel/core": "1"
// },
// "peerDependencies": {
// "eslint": ">= 6"
// },
// "peerDependenciesMeta": {
// "eslint": {
// "optional": true
// }
// }
// }
},
/**
* The `globalNeverBuiltDependencies` setting suppresses the `preinstall`, `install`, and `postinstall`
* lifecycle events for the specified NPM dependencies. This is useful for scripts with poor practices
* such as downloading large binaries without retries or attempting to invoke OS tools such as
* a C++ compiler. (PNPM's terminology refers to these lifecycle events as "building" a package;
* it has nothing to do with build system operations such as `rush build` or `rushx build`.)
* The settings are copied into the `pnpm.neverBuiltDependencies` field of the `common/temp/package.json`
* file that is generated by Rush during installation.
*
* PNPM documentation: https://pnpm.io/package_json#pnpmneverbuiltdependencies
*/
"globalNeverBuiltDependencies": [
// "fsevents"
],
/**
* The `globalAllowedDeprecatedVersions` setting suppresses installation warnings for package
* versions that the NPM registry reports as being deprecated. This is useful if the
* deprecated package is an indirect dependency of an external package that has not released a fix.
* The settings are copied into the `pnpm.allowedDeprecatedVersions` field of the `common/temp/package.json`
* file that is generated by Rush during installation.
*
* PNPM documentation: https://pnpm.io/package_json#pnpmalloweddeprecatedversions
*
* If you are working to eliminate a deprecated version, it's better to specify `allowedDeprecatedVersions`
* in the package.json file for individual Rush projects.
*/
"globalAllowedDeprecatedVersions": {
// "request": "*"
},
/**
* (THIS FIELD IS MACHINE GENERATED) The "globalPatchedDependencies" field is updated automatically
* by the `rush-pnpm patch-commit` command. It is a dictionary, where the key is an NPM package name
* and exact version, and the value is a relative path to the associated patch file.
*
* PNPM documentation: https://pnpm.io/package_json#pnpmpatcheddependencies
*/
"globalPatchedDependencies": {},
/**
* (USE AT YOUR OWN RISK) This is a free-form property bag that will be copied into
* the `common/temp/package.json` file that is generated by Rush during installation.
* This provides a way to experiment with new PNPM features. These settings will override
* any other Rush configuration associated with a given JSON field except for `.pnpmfile.cjs`.
*
* USAGE OF THIS SETTING IS NOT SUPPORTED BY THE RUSH MAINTAINERS AND MAY CAUSE RUSH
* TO MALFUNCTION. If you encounter a missing PNPM setting that you believe should
* be supported, please create a GitHub issue or PR. Note that Rush does not aim to
* support every possible PNPM setting, but rather to promote a battle-tested installation
* strategy that is known to provide a good experience for large teams with lots of projects.
*/
"unsupportedPackageJsonSettings": {
// "dependencies": {
// "not-a-good-practice": "*"
// },
// "scripts": {
// "do-something": "echo Also not a good practice"
// },
// "pnpm": { "futurePnpmFeature": true }
}
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,4 +0,0 @@
// DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush.
{
"pnpmShrinkwrapHash": "d3215c961d7595909738f0eabba7eda6de76c717"
}

Просмотреть файл

@ -5,21 +5,25 @@
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugins.schema.json", "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugins.schema.json",
"plugins": [ "plugins": [
/** /**
* Each item defines a plugin configuration used by Rush. * Each item configures a plugin to be loaded by Rush.
*/ */
// { // {
// /** // /**
// * The name of the rush plugin package. // * The name of the NPM package that provides the plugin.
// */ // */
// "packageName": "@scope/my-rush-plugin", // "packageName": "@scope/my-rush-plugin",
// /** // /**
// * The name of the plugin provided by rush plugin package // * The name of the plugin. This can be found in the "pluginName"
// * field of the "rush-plugin-manifest.json" file in the NPM package folder.
// */ // */
// "pluginName": "my-plugin-name", // "pluginName": "my-plugin-name",
// /** // /**
// * Autoinstaller name used to install the plugin. // * The name of a Rush autoinstaller that will be used for installation, which
// * can be created using "rush init-autoinstaller". Add the plugin's NPM package
// * to the package.json "dependencies" of your autoinstaller, then run
// * "rush update-autoinstaller".
// */ // */
// "autoinstallerName": "plugins" // "autoinstallerName": "rush-plugins"
// } // }
] ]
} }

Просмотреть файл

@ -40,7 +40,7 @@
// * When creating a release branch in Git, this field should be updated according to the // * When creating a release branch in Git, this field should be updated according to the
// * type of release. // * type of release.
// * // *
// * Valid values are: "prerelease", "release", "minor", "patch", "major" // * Valid values are: "prerelease", "minor", "patch", "major"
// */ // */
// "nextBump": "prerelease", // "nextBump": "prerelease",
// //

130
rush.json
Просмотреть файл

@ -16,7 +16,7 @@
* path segment in the "$schema" field for all your Rush config files. This will ensure * path segment in the "$schema" field for all your Rush config files. This will ensure
* correct error-underlining and tab-completion for editors such as VS Code. * correct error-underlining and tab-completion for editors such as VS Code.
*/ */
"rushVersion": "5.76.1", "rushVersion": "5.100.1",
/** /**
* The next field selects which package manager should be installed and determines its version. * The next field selects which package manager should be installed and determines its version.
@ -26,93 +26,11 @@
* Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion". See the Rush documentation * Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion". See the Rush documentation
* for details about these alternatives. * for details about these alternatives.
*/ */
"pnpmVersion": "6.34.0", "pnpmVersion": "7.26.1",
// "npmVersion": "6.14.15", // "npmVersion": "6.14.15",
// "yarnVersion": "1.9.4", // "yarnVersion": "1.9.4",
/**
* Options that are only used when the PNPM package manager is selected
*/
"pnpmOptions": {
/**
* Specifies the location of the PNPM store. There are two possible values:
*
* - "local" - use the "pnpm-store" folder in the current configured temp folder:
* "common/temp/pnpm-store" by default.
* - "global" - use PNPM's global store, which has the benefit of being shared
* across multiple repo folders, but the disadvantage of less isolation for builds
* (e.g. bugs or incompatibilities when two repos use different releases of PNPM)
*
* RUSH_PNPM_STORE_PATH will override the directory that will be used as the store
*
* In all cases, the store path will be overridden by the environment variable RUSH_PNPM_STORE_PATH.
*
* The default value is "local".
*/
// "pnpmStore": "local",
/**
* If true, then Rush will add the "--strict-peer-dependencies" option when invoking PNPM.
* This causes "rush install" to fail if there are unsatisfied peer dependencies, which is
* an invalid state that can cause build failures or incompatible dependency versions.
* (For historical reasons, JavaScript package managers generally do not treat this invalid
* state as an error.)
*
* The default value is false to avoid legacy compatibility issues.
* It is strongly recommended to set strictPeerDependencies=true.
*/
"strictPeerDependencies": true,
/**
* Configures the strategy used to select versions during installation.
*
* This feature requires PNPM version 3.1 or newer. It corresponds to the "--resolution-strategy" command-line
* option for PNPM. Possible values are "fast" and "fewer-dependencies". PNPM's default is "fast", but this may
* be incompatible with certain packages, for example the "@types" packages from DefinitelyTyped. Rush's default
* is "fewer-dependencies", which causes PNPM to avoid installing a newer version if an already installed version
* can be reused; this is more similar to NPM's algorithm.
*
* After modifying this field, it's recommended to run "rush update --full" so that the package manager
* will recalculate all version selections.
*/
// "resolutionStrategy": "fast",
/**
* If true, then `rush install` will report an error if manual modifications
* were made to the PNPM shrinkwrap file without running "rush update" afterwards.
*
* This feature protects against accidental inconsistencies that may be introduced
* if the PNPM shrinkwrap file ("pnpm-lock.yaml") is manually edited. When this
* feature is enabled, "rush update" will append a hash to the file as a YAML comment,
* and then "rush update" and "rush install" will validate the hash. Note that this does not prohibit
* manual modifications, but merely requires "rush update" be run
* afterwards, ensuring that PNPM can report or repair any potential inconsistencies.
*
* To temporarily disable this validation when invoking "rush install", use the
* "--bypass-policy" command-line parameter.
*
* The default value is false.
*/
"preventManualShrinkwrapChanges": true
/**
* If true, then `rush install` will use the PNPM workspaces feature to perform the
* install.
*
* This feature uses PNPM to perform the entire monorepo install. When using workspaces, Rush will
* generate a "pnpm-workspace.yaml" file referencing all local projects to install. Rush will
* also generate a "pnpmfile.js" which is used to provide preferred versions support. When install
* is run, this pnpmfile will be used to replace dependency version ranges with a smaller subset
* of the original range. If the preferred version is not fully a subset of the original version
* range, it will be left as-is. After this, the pnpmfile.js provided in the repository (if one
* exists) will be called to further modify package dependencies.
*
* This option is experimental. The default value is false.
*/
//"useWorkspaces": true
},
/** /**
* Older releases of the Node.js engine may be missing features required by your system. * Older releases of the Node.js engine may be missing features required by your system.
* Other releases may have bugs. In particular, the "latest" version will not be a * Other releases may have bugs. In particular, the "latest" version will not be a
@ -124,7 +42,15 @@
* LTS schedule: https://nodejs.org/en/about/releases/ * LTS schedule: https://nodejs.org/en/about/releases/
* LTS versions: https://nodejs.org/en/download/releases/ * LTS versions: https://nodejs.org/en/download/releases/
*/ */
"nodeSupportedVersionRange": ">=12.13.0 <13.0.0 || >=14.15.0 <15.0.0", "nodeSupportedVersionRange": ">=14.15.0 <15.0.0 || >=16.13.0 <17.0.0 || >=18.15.0 <19.0.0",
/**
* If the version check above fails, Rush will display a message showing the current
* node version and the supported version range. You can use this setting to provide
* additional instructions that will display below the warning, if there's a specific
* tool or script you'd like the user to use to get in line with the expected version.
*/
// "nodeSupportedVersionInstructions": "Run 'nvs use' to switch to the expected node version.",
/** /**
* Odd-numbered major versions of Node.js are experimental. Even-numbered releases * Odd-numbered major versions of Node.js are experimental. Even-numbered releases
@ -245,7 +171,7 @@
*/ */
// "allowedEmailRegExps": [ // "allowedEmailRegExps": [
// "[^@]+@users\\.noreply\\.github\\.com", // "[^@]+@users\\.noreply\\.github\\.com",
// "travis@example\\.org" // "rush-bot@example\\.org"
// ], // ],
"allowedEmailRegExps": ["[^@]+@users\\.noreply\\.github\\.com"], "allowedEmailRegExps": ["[^@]+@users\\.noreply\\.github\\.com"],
@ -254,8 +180,8 @@
* of a recommended email. Make sure it conforms to one of the allowedEmailRegExps * of a recommended email. Make sure it conforms to one of the allowedEmailRegExps
* expressions. * expressions.
*/ */
// "sampleEmail": "mrexample@users.noreply.github.com", // "sampleEmail": "example@users.noreply.github.com",
"sampleEmail": "mrexample@users.noreply.github.com" "sampleEmail": "example@users.noreply.github.com"
/** /**
* The commit message to use when committing changes during 'rush publish'. * The commit message to use when committing changes during 'rush publish'.
@ -273,7 +199,14 @@
* you might configure your system's trigger to look for a special string such as "[skip-ci]" * you might configure your system's trigger to look for a special string such as "[skip-ci]"
* in the commit message, and then customize Rush's message to contain that string. * in the commit message, and then customize Rush's message to contain that string.
*/ */
// "changeLogUpdateCommitMessage": "Update changelogs [skip ci]" // "changeLogUpdateCommitMessage": "Update changelogs [skip ci]",
/**
* The commit message to use when commiting changefiles during 'rush change --commit'
*
* If no commit message is set it will default to 'Rush change'
*/
// "changefilesCommitMessage": "Rush change"
}, },
"repository": { "repository": {
@ -384,11 +317,14 @@
// "hotfixChangeEnabled": false, // "hotfixChangeEnabled": false,
/** /**
* This is an optional, but recommended, list of available tags that can be applied * This is an optional, but recommended, list of allowed tags that can be applied to Rush projects
* to projects. If this property is not specified, any tag is allowed. This * using the "tags" setting in this file. This list is useful for preventing mistakes such as misspelling,
* list is useful in preventing typos when specifying tags for projects. * and it also provides a centralized place to document your tags. If "allowedProjectTags" list is
* not specified, then any valid tag is allowed. A tag name must be one or more words
* separated by hyphens or slashes, where a word may contain lowercase ASCII letters, digits,
* ".", and "@" characters.
*/ */
// "allowedProjectTags": [ "apps", "Web", "tools" ], // "allowedProjectTags": [ "tools", "frontend-team", "1.0.0-release" ],
/** /**
* (Required) This is the inventory of projects to be managed by Rush. * (Required) This is the inventory of projects to be managed by Rush.
@ -476,16 +412,18 @@
// /** // /**
// * An optional set of custom tags that can be used to select this project. For example, // * An optional set of custom tags that can be used to select this project. For example,
// * adding "my-custom-tag" will allow this project to be selected by the // * adding "my-custom-tag" will allow this project to be selected by the
// * command "rush list --only tag:my-custom-tag" // * command "rush list --only tag:my-custom-tag". The tag name must be one or more words
// * separated by hyphens or slashes, where a word may contain lowercase ASCII letters, digits,
// * ".", and "@" characters.
// */ // */
// // "tags": ["apps", "web"] // // "tags": [ "1.0.0-release", "frontend-team" ]
// }, // },
// //
// { // {
// "packageName": "my-controls", // "packageName": "my-controls",
// "projectFolder": "libraries/my-controls", // "projectFolder": "libraries/my-controls",
// "reviewCategory": "production", // "reviewCategory": "production",
// "tags": ["libraries", "web"] // "tags": [ "frontend-team" ]
// }, // },
// //
// { // {