Upgrade Rush and PNPM
This commit is contained in:
Родитель
9c02c44e8c
Коммит
cef5058c45
|
@ -58,6 +58,11 @@ jspm_packages/
|
|||
# OS X temporary files
|
||||
.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
|
||||
common/deploy/
|
||||
common/temp/
|
||||
|
|
|
@ -46,6 +46,14 @@
|
|||
*/
|
||||
"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
|
||||
* 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."
|
||||
*/
|
||||
// "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
|
||||
* 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]"
|
||||
|
||||
|
@ -58,25 +65,66 @@
|
|||
*/
|
||||
"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",
|
||||
/**
|
||||
* (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").
|
||||
* This shold not include any path, use the s3Prefix to set the path.
|
||||
* (Required unless s3Bucket is specified) The Amazon S3 endpoint of the bucket to use for build cache.
|
||||
* 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",
|
||||
/**
|
||||
* (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",
|
||||
/**
|
||||
* 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",
|
||||
/**
|
||||
* If set to true, allow writing to the cache. Defaults to false.
|
||||
*/
|
||||
// "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.
|
||||
// * Rush's "bulk" commands are invoked separately for each project. Rush will look in
|
||||
// * each project's package.json file for a "scripts" entry whose name matches the
|
||||
// * 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).
|
||||
// * Rush's "bulk" commands are invoked separately for each project. 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.
|
||||
// */
|
||||
// "commandKind": "bulk",
|
||||
//
|
||||
// /**
|
||||
// * (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
|
||||
// * 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).
|
||||
|
@ -61,6 +60,16 @@
|
|||
// "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
|
||||
// * simultaneously for multiple projects. Similar to "rush build", regardless of parallelism
|
||||
// * projects will not start processing until their dependencies have completed processing.
|
||||
|
@ -227,7 +236,7 @@
|
|||
// {
|
||||
// /**
|
||||
// * (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",
|
||||
// "longName": "--my-string",
|
||||
|
@ -235,13 +244,6 @@
|
|||
//
|
||||
// "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",
|
||||
//
|
||||
// /**
|
||||
|
@ -254,24 +256,19 @@
|
|||
// /**
|
||||
// * (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.
|
||||
// * allowable alternatives (similar to an enum).
|
||||
// */
|
||||
// "parameterKind": "choice",
|
||||
// "longName": "--my-choice",
|
||||
// "description": "A custom choice parameter for the \"my-global-command\" custom command",
|
||||
//
|
||||
// "associatedCommands": ["my-global-command"],
|
||||
//
|
||||
// /**
|
||||
// * If true, this parameter must be included with the command. The default is false.
|
||||
// */
|
||||
// "required": false,
|
||||
//
|
||||
// /**
|
||||
// * Normally if a parameter is omitted from the command line, it will not be passed
|
||||
// * to the shell command. this value will be inserted by default. Whereas if a "defaultValue"
|
||||
// * is defined, the parameter will always be passed to the shell command, and will use the
|
||||
// * default value if unspecified. The value must be one of the defined alternatives.
|
||||
// * If a "defaultValue" is specified, then if the Rush command line is invoked without
|
||||
// * this parameter, it will be automatically added with the "defaultValue" as the argument.
|
||||
// * The value must be one of the defined alternatives.
|
||||
// */
|
||||
// "defaultValue": "vanilla",
|
||||
//
|
||||
|
@ -292,7 +289,112 @@
|
|||
// * 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 (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
|
||||
* 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",
|
||||
"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",
|
||||
// /**
|
||||
// * 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",
|
||||
// /**
|
||||
// * 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
|
||||
// * type of release.
|
||||
// *
|
||||
// * Valid values are: "prerelease", "release", "minor", "patch", "major"
|
||||
// * Valid values are: "prerelease", "minor", "patch", "major"
|
||||
// */
|
||||
// "nextBump": "prerelease",
|
||||
//
|
||||
|
|
130
rush.json
130
rush.json
|
@ -16,7 +16,7 @@
|
|||
* 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.
|
||||
*/
|
||||
"rushVersion": "5.76.1",
|
||||
"rushVersion": "5.100.1",
|
||||
|
||||
/**
|
||||
* 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
|
||||
* for details about these alternatives.
|
||||
*/
|
||||
"pnpmVersion": "6.34.0",
|
||||
"pnpmVersion": "7.26.1",
|
||||
|
||||
// "npmVersion": "6.14.15",
|
||||
// "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.
|
||||
* 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 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
|
||||
|
@ -245,7 +171,7 @@
|
|||
*/
|
||||
// "allowedEmailRegExps": [
|
||||
// "[^@]+@users\\.noreply\\.github\\.com",
|
||||
// "travis@example\\.org"
|
||||
// "rush-bot@example\\.org"
|
||||
// ],
|
||||
"allowedEmailRegExps": ["[^@]+@users\\.noreply\\.github\\.com"],
|
||||
|
||||
|
@ -254,8 +180,8 @@
|
|||
* of a recommended email. Make sure it conforms to one of the allowedEmailRegExps
|
||||
* expressions.
|
||||
*/
|
||||
// "sampleEmail": "mrexample@users.noreply.github.com",
|
||||
"sampleEmail": "mrexample@users.noreply.github.com"
|
||||
// "sampleEmail": "example@users.noreply.github.com",
|
||||
"sampleEmail": "example@users.noreply.github.com"
|
||||
|
||||
/**
|
||||
* 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]"
|
||||
* 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": {
|
||||
|
@ -384,11 +317,14 @@
|
|||
// "hotfixChangeEnabled": false,
|
||||
|
||||
/**
|
||||
* This is an optional, but recommended, list of available tags that can be applied
|
||||
* to projects. If this property is not specified, any tag is allowed. This
|
||||
* list is useful in preventing typos when specifying tags for projects.
|
||||
* This is an optional, but recommended, list of allowed tags that can be applied to Rush projects
|
||||
* using the "tags" setting in this file. This list is useful for preventing mistakes such as misspelling,
|
||||
* 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.
|
||||
|
@ -476,16 +412,18 @@
|
|||
// /**
|
||||
// * 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
|
||||
// * 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",
|
||||
// "projectFolder": "libraries/my-controls",
|
||||
// "reviewCategory": "production",
|
||||
// "tags": ["libraries", "web"]
|
||||
// "tags": [ "frontend-team" ]
|
||||
// },
|
||||
//
|
||||
// {
|
||||
|
|
Загрузка…
Ссылка в новой задаче