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)
- [api-extractor] How to remove redundant new lines of trimmed variables?
- [rush] `rush add -p pkg@some_version --make-consistent` to update a installed old version pkg will update all projects not a subapce's projects HOT 3
- [api-documenter] Processing links inside of tables not working reliably in jekyll
- [rush] Update ci.yml to cache installed dependencies HOT 2
- [rush] `rush-pnpm store prune` returns exit code 1 since 5.126.0 HOT 2
- [api-extractor] feature request: add inferred `in` and `out` to generics in api report
- [rush] rush deploy fails with argon2 package missing in x86 docker build from ARM host HOT 1
- [api-extractor] Support Typescript 5.5 HOT 3
- [api-extractor] Re-exporting of module "namespaces" across package boundaries yields malformed type roll-ups HOT 1
- [rush] Rush add causes malformed package.json if the package.json does not have "dependencies" field yet and have >1 entries in "contributors" field
- [rush] Git branch lockfiles of pnpm cannot be used with rush HOT 2
- [rush] shrinkwrapIsUpToDate does not take globalOverrides into account HOT 2
- [rush] Running `rush rebuild` to run `rollup -c` causes a warning tip. HOT 2
- [rush] `rush add` adds latest version when repository already has a dependency on the package
- rush-pnpm patch-commit not generating patch file HOT 4
- [rush] cobuild errors are not properly propagated. HOT 2
- [rush] Feature Request: Support PNPM 9 HOT 1
- [api-extractor] auto add `.api.md` HOT 5
- [rush] RushInstallManager ignores autoInstallPeers:false (and npmrc auto-install-peers=false) configuration HOT 2
- [rush] regression -- publish now fails for new packages HOT 2
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.