Use Corepack for selecting package manager#28
Use Corepack for selecting package manager#28trygve-lie wants to merge 1 commit intofinn-no:nextfrom
Conversation
| rm /usr/local/bin/yarn && npm uninstall --loglevel warn --global pnpm && npm uninstall --loglevel warn --global npm && \ | ||
| apk del build-dependencies | ||
|
|
||
| ONBUILD COPY . ./ |
There was a problem hiding this comment.
Possibly better to do the copy as late as possible so Docker can reuse the layer which installs build dependencies, corepack and node dependencies when only changing some production code (this has nothing to do with package managers).
There was a problem hiding this comment.
Then I think we need to copy any lock file here and all the other files later. I am not 100% sure about that but we definetly need package.json copied here before we run any of the commands. I would really love if we could make it so that we don't have to hard code each package managers lock files into this. Any suggestions on how to avoid hard coding such?
| YARN_OPTS="" | ||
| NPM_CMD="install" | ||
| fi | ||
| # Execute install with corepack, return true to ignore errors from non matching package managers |
There was a problem hiding this comment.
Any way we could allow users to provide args/flags for these commands?
There was a problem hiding this comment.
Do you mean to corepack or the package manager? Or both.
There was a problem hiding this comment.
The package manager commands. My concern is if a user wants to pass some args to their package manager of choice, how do we enable that?
Not sure if Docker's ENV would work to pass args down, or if there's another way.
e.g. pseudocode
corepack yarn install $OPTS || true
corepack pnpm install $OPTS || true
corepack npm ci $OPTS || true
Please see RFC (internally announced) and comment on the RFC before applying any comments here. At the moment this PR is intended for PoC purposes only.