-
Notifications
You must be signed in to change notification settings - Fork 905
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
fix: Remove hardcoded npm registry url #2520
base: main
Are you sure you want to change the base?
fix: Remove hardcoded npm registry url #2520
Conversation
packages/cli/src/tools/npm.ts
Outdated
@@ -129,7 +127,7 @@ const minorVersion = (version: string) => { | |||
export async function getTemplateVersion( | |||
reactNativeVersion: string, | |||
): Promise<TemplateVersion | undefined> { | |||
const json = await fetch(TEMPLATE_VERSIONS_URL).then( | |||
const json = await fetch(getNpmRegistryUrl() + '@react-native-community/template').then( |
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'd prefer leveraging here new URL()
to make sure URL is always in a correct format, e.g. when getNpmRegistryUrl()
'd return value without /
at the end, previous would've fail.
const json = await fetch(getNpmRegistryUrl() + '@react-native-community/template').then( | |
const json = await fetch(new URL('@react-native-community/template', getNpmRegistryUrl())).then( |
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.
Makes a lot of sense, thanks! 👍
cc @blakef |
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.
This is a really nice change. Couple of small things before you land it:
- update the URL handling to use
URL
as @szymonrybczak suggested - fix the formatting
Summary:
fixes: #2519
Official npm registry url is hardcoded, the "cli" can't run successfully in a closed environment.
Following error is displayed when running
npx @react-native-community/cli@latest init AwesomeProject --verbose
.My solution is using
getNpmRegistryUrl()
to get real npm registry url in user's local environment, then it can avoid using official npm registry directly.Test Plan:
Build and run
node /path/to/react-native-cli/packages/cli/build/bin.js init AwesomeProject
Checklist