experiments.json 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /**
  2. * This configuration file allows repo maintainers to enable and disable experimental
  3. * Rush features. More documentation is available on the Rush website: https://rushjs.io
  4. */
  5. {
  6. "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/experiments.schema.json",
  7. /**
  8. * By default, 'rush install' passes --no-prefer-frozen-lockfile to 'pnpm install'.
  9. * Set this option to true to pass '--frozen-lockfile' instead for faster installs.
  10. */
  11. // "usePnpmFrozenLockfileForRushInstall": true,
  12. /**
  13. * By default, 'rush update' passes --no-prefer-frozen-lockfile to 'pnpm install'.
  14. * Set this option to true to pass '--prefer-frozen-lockfile' instead to minimize shrinkwrap changes.
  15. */
  16. // "usePnpmPreferFrozenLockfileForRushUpdate": true,
  17. /**
  18. * By default, 'rush update' runs as a single operation.
  19. * Set this option to true to instead update the lockfile with `--lockfile-only`, then perform a `--frozen-lockfile` install.
  20. * Necessary when using the `afterAllResolved` hook in .pnpmfile.cjs.
  21. */
  22. // "usePnpmLockfileOnlyThenFrozenLockfileForRushUpdate": true,
  23. /**
  24. * If using the 'preventManualShrinkwrapChanges' option, restricts the hash to only include the layout of external dependencies.
  25. * Used to allow links between workspace projects or the addition/removal of references to existing dependency versions to not
  26. * cause hash changes.
  27. */
  28. // "omitImportersFromPreventManualShrinkwrapChanges": true,
  29. /**
  30. * If true, the chmod field in temporary project tar headers will not be normalized.
  31. * This normalization can help ensure consistent tarball integrity across platforms.
  32. */
  33. // "noChmodFieldInTarHeaderNormalization": true,
  34. /**
  35. * If true, build caching will respect the allowWarningsInSuccessfulBuild flag and cache builds with warnings.
  36. * This will not replay warnings from the cached build.
  37. */
  38. // "buildCacheWithAllowWarningsInSuccessfulBuild": true,
  39. /**
  40. * If true, build skipping will respect the allowWarningsInSuccessfulBuild flag and skip builds with warnings.
  41. * This will not replay warnings from the skipped build.
  42. */
  43. // "buildSkipWithAllowWarningsInSuccessfulBuild": true,
  44. /**
  45. * If true, perform a clean install after when running `rush install` or `rush update` if the
  46. * `.npmrc` file has changed since the last install.
  47. */
  48. // "cleanInstallAfterNpmrcChanges": true,
  49. /**
  50. * If true, print the outputs of shell commands defined in event hooks to the console.
  51. */
  52. // "printEventHooksOutputToConsole": true,
  53. /**
  54. * If true, Rush will not allow node_modules in the repo folder or in parent folders.
  55. */
  56. // "forbidPhantomResolvableNodeModulesFolders": true,
  57. /**
  58. * (UNDER DEVELOPMENT) For certain installation problems involving peer dependencies, PNPM cannot
  59. * correctly satisfy versioning requirements without installing duplicate copies of a package inside the
  60. * node_modules folder. This poses a problem for "workspace:*" dependencies, as they are normally
  61. * installed by making a symlink to the local project source folder. PNPM's "injected dependencies"
  62. * feature provides a model for copying the local project folder into node_modules, however copying
  63. * must occur AFTER the dependency project is built and BEFORE the consuming project starts to build.
  64. * The "pnpm-sync" tool manages this operation; see its documentation for details.
  65. * Enable this experiment if you want "rush" and "rushx" commands to resync injected dependencies
  66. * by invoking "pnpm-sync" during the build.
  67. */
  68. // "usePnpmSyncForInjectedDependencies": true,
  69. /**
  70. * If set to true, Rush will generate a `project-impact-graph.yaml` file in the repository root during `rush update`.
  71. */
  72. // "generateProjectImpactGraphDuringRushUpdate": true,
  73. /**
  74. * If true, when running in watch mode, Rush will check for phase scripts named `_phase:<name>:ipc` and run them instead
  75. * of `_phase:<name>` if they exist. The created child process will be provided with an IPC channel and expected to persist
  76. * across invocations.
  77. */
  78. // "useIPCScriptsInWatchMode": true,
  79. /**
  80. * (UNDER DEVELOPMENT) The Rush alerts feature provides a way to send announcements to engineers
  81. * working in the monorepo, by printing directly in the user's shell window when they invoke Rush commands.
  82. * This ensures that important notices will be seen by anyone doing active development, since people often
  83. * ignore normal discussion group messages or don't know to subscribe.
  84. */
  85. // "rushAlerts": true,
  86. /**
  87. * When using cobuilds, this experiment allows uncacheable operations to benefit from cobuild orchestration without using the build cache.
  88. */
  89. // "allowCobuildWithoutCache": true
  90. }