Pete Gonzalez

Results 698 comments of Pete Gonzalez

Related issues: - https://github.com/microsoft/rushstack/issues/2378 asks for `pnpm link` to work in a Rush repo - https://github.com/microsoft/rushstack/issues/2347 agreed on a general design for enabling PNPM workspace commands in a Rush repo,...

The https://github.com/domclick/super-rush tool may also be related to this.

The `rush-pnpm` command was introduced in Rush 5.74.0 which allows access to the `pnpm link` command. It's a partial solution, but I still think Rush should have a built-in solution...

> enabling these stricter options by default may also be frustrating and non-discoverable, especially for existing repos that are already relying on hoisting for indirect dependencies. As part of migrating...

The PNPM settings: - [`hoist-pattern`](https://pnpm.io/npmrc#hoist-pattern): "Tells pnpm which packages should be hoisted to `node_modules/.pnpm`. By default, all packages are hoisted - however, if you know that only some flawed packages...

Seems like: | | `hoist-pattern` | `public-hoist-pattern` | |----|----|----| | affects dependencies of... | external packages | local workspace projects | | defaults to... | `*` | ESLint and Prettier...

> I'd like to propose adding an option to the `pnpmOptions` section of `rush.json` called `strictIndirectDependencies` (although I'm totally open to alternative names). When this option is enabled, Rush would...

> Since nothing looks for modules in `common/temp` other than the packages that are stored inside of `common/temp/node_modules/.pnpm`, both `public-hoist-pattern` and `hoist-pattern` have equivalent behavior for any given pattern. Interesting!...

@dmichon-msft Then does that mean the `shamefully-hoist` behavior is incompatible with Rush? - if `useWorkspaces=true`, then `shamefully-hoist` has no effect because the hoisting happens in `common/temp/node_modules` - if `useWorkspaces=false`, then...

Based on David's feedback, here's another iteration: 4. There's only one setting `hoistedIndirectDependencyPatterns` in **rush.json**. It defaults to `["*"]`, but our doc comment will strongly encourage changing it to `[...