-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Download platform specific package if optionalDependencies
are skipped
#17929
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
45ee6a1
to
ade7619
Compare
ade7619
to
6e16360
Compare
3379069
to
2164265
Compare
|
||
const version = packageJson.version | ||
|
||
function getPlatformPackageName() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if we can somehow re-use this logic from what NAPI generated for us. Since that is generated and using require already it might not be as easy.
Just have to make sure that if we make changes, that we keep this in sync
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was looking at the napi stuff and it seems to be much more (it generates names for packages that we don't even have etc). I agree that ideally we can reuse it but the function for that is not exported so I'm not sure how. MAYBE we can just try and load the index.js file tbh but then we still don't need which file to load haha
Co-authored-by: Robin Malfait <malfait.robin@gmail.com>
Co-authored-by: Robin Malfait <malfait.robin@gmail.com>
Closes #15806
This PR adds a new
postinstall
script to@tailwindcss/oxide
that will attempt to download the platform-specific optional dependency to avoid issues when the package manager does not do that automatically (see #15806). The implementation for this is fairly simple: The npm package is downloaded from the official npm servers and extracted into thenode_modules
directory of the@tailwidncss/oxide
installation.Test plan
Since we still lack a solid repro of #15806, the way I tested this change was to manually remove all automatically-installed optional dependencies and then running the postinstall script manually. The script then downloads the right version package which makes the import to
@tailwidncss/oxide
work. An appropriate integration test was added too.I furthermore also validated that:
pnpm install
in the dev setup. This is necessary since doing the initial install won't have any binary dependencies yet so it would download invalid versions from npm (as the version numbers locally refer to the last released version). We can safely bail out here though since this was never an issue with local development.@tailwindcss/oxide
library is added unless the issue is detected.[ci-all]