Comments (5)
I am excited to see this improvement! I would like to put some thoughts here:
- Is there any pattern to share code in subspace pnpmfile.js across different subspaces? If so, is it point to the JS fashion
require('relative_path/shared_pnpmfile.cjs')
? -
In the case where subspaces//pnpm-config.json is absent.
Is it say that the file-level absent? Or it means that property level absent in subspace's pnpm-config.json.
For example, useWorkspaces
seems to be a monorepo-level configuration, and it cannot be set in subspace-level pnpm-config.json. Meanwhile, globalPnpmOverrides
works great in subspace-level.
-
The ensureConsistentVersions setting should be moved from rush.json to common-versions.json
strongly agree!
-
rush version, rush install, etc always need to invoke rush check in a loop for every subspace (or else for a subset of subspaces affected by the operation).
If a certain subspace is ensureConsistentVersions
disabled, it won't run rush check
for this subpsace. Am I understanding it correctly?
from rushstack.
- Is there any pattern to share code in subspace pnpmfile.js across different subspaces? If so, is it point to the JS fashion
require('relative_path/shared_pnpmfile.cjs')
?
@william2958 seemed to think this was not a useful feature, at least in TikTok's monorepo where there are hundreds of subspaces. Although you could technically share logic using require('../../common-stuff')
, Rush/PNPM has no way to detect changes to files referenced in that way, which will break the rush install
analysis. Also, long term, I think we want to strongly discourage usage of .pnpmfile.cjs
(code) in favor of pnpm-config.json
(data) as it is easier to validate and cache.
from rushstack.
Is it say that the file-level absent? Or it means that property level absent in subspace's pnpm-config.json.
"in the case where subspaces/<name>/pnpm-config.json
is absent" means the entire file is absent. "all-or-nothing fallback" means all fields or no fields.
For example,
useWorkspaces
seems to be a monorepo-level configuration, and it cannot be set in subspace-level pnpm-config.json. Meanwhile,globalPnpmOverrides
works great in subspace-level.
The useWorksapces
and subspacesEnabled
settings are expected to be removed in Rush 6 (always on). In the latest Rush, subspacesEnabled
will produce an error if useWorkspaces=false
for any subspace, so #4720 means that if you create a subspace-level pnpm-config.json
then you must set useWorkspaces=true
in that file also.
(BTW it would be technically possible to support useWorkspaces=false
with subspaces, and even allow true/false for different subspaces, but we don't want to invest in that as our goal is to eliminate useWorkspaces=false
.)
from rushstack.
4. rush version, rush install, etc always need to invoke rush check in a loop for every subspace (or else for a subset of subspaces affected by the operation).
If a certain subspace is
ensureConsistentVersions
disabled, it won't runrush check
for this subpsace. Am I understanding it correctly?
Yes. I've clarified the wording.
from rushstack.
@william2958 Here's how the docs update will look to reflect these changes:
microsoft/rushstack-websites#235
from rushstack.
Related Issues (20)
- [rush] tab-complete fails to complete project list after `--to` HOT 1
- [api-extractor] Better support for nominal types
- [rush] rush add -p <package> always installs as if `--all` is specified HOT 3
- [heft] `set-environment-variables-plugin` variables remain set in unrelated phases
- [rush] The source code address for the 'rush build' command.
- [rush] Cannot publish: getting ENEEDAUTH even though I'm already authenticated HOT 2
- [rush] PNPM Overrides with more advanced syntax will cause Rush to always complain that shrinkwrap file need to be updated HOT 4
- [api-documenter] [api-extractor] Linking with multiple entrypoints is broken
- [rush] additionalProjectsToInclude not working anymore at rush deploy HOT 7
- [rush] pnpm 6.x -> 8.x upgrade: how to upgrade lockfile version HOT 1
- [eslint-bulk] eslint-bulk-suppressions-test fails to build
- [api-extractor] Support docs/trimming for members of a literal union type alias HOT 1
- [lockfile-explorer] missing dependencies for first init HOT 1
- [ts-command-line] Parameters in CommandLineParser onExecute are undefined HOT 4
- [node-core-library] Add support json-schema 'draft-07' validation in JsonFile / JsonSchema HOT 2
- [rush] Autoinstaller doesn't get the auto-install-peers config from pnpm-config.json HOT 2
- [rush] duplicated cobuild telemetry leading to data skew
- [api-extractor] InternalError: Internal Error: Unable to follow symbol for "TWidgetParams" (generic inside satisfies function) HOT 1
- [rush] granular build event data HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rushstack.