I can't use a symlinked package
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, react-native
- Ambito
- build-system, tooling
Direzione di ricerca
Riproduci la configurazione usando i comandi indicati di npm, React Native e Lerna, quindi esamina l’entry point del package in packages/package1/package.js e la relativa importazione da App.tsx. Traccia il modo in cui l’app React Native basata su Metro risolve il package collegato tramite symlink; il lavoro è completato quando il package può essere importato e CustomButton viene renderizzato senza il problema segnalato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
Hello everyone, after the new update of react native with version 0.72, and support for Symlink, I wanted to create a small project to test these features, but when importing a package created with lerna for a monorepo, I can't import it and use it correctly.
React Native Version
0.72.1
Output of npx react-native info
info Fetching system and libraries information...
System:
OS: Linux 5.19 Ubuntu 22.04.2 LTS 22.04.2 LTS (Jammy Jellyfish)
CPU: (12) x64 AMD Ryzen 5 5600X 6-Core Processor
Memory: 5.50 GB / 15.54 GB
Shell:
version: 5.1.16
path: /bin/bash
Binaries:
Node:
version: 18.16.1
path: ~/.nvm/versions/node/v18.16.1/bin/node
Yarn:
version: 1.22.19
path: /home/linuxbrew/.linuxbrew/bin/yarn
npm:
version: 9.5.1
path: ~/.nvm/versions/node/v18.16.1/bin/npm
Watchman:
version: 2022.06.20.00
path: /home/linuxbrew/.linuxbrew/bin/watchman
SDKs:
Android SDK: Not Found
IDEs:
Android Studio: Not Found
Languages:
Java:
version: 11.0.19
path: /usr/bin/javac
Ruby:
version: 3.0.2
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.72.1
wanted: 0.72.1
npmGlobalPackages:
"react-native": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: Not found
newArchEnabled: Not found
Steps to reproduce
First I create an empty folder
mkdir monorepo && cd monorepo
I create a react native app
npx react-native@latest init AwesomeProject
I start lerna
lerna init
I create new package with lerna
lerna create package1
I modify packages/package1/package.js with this code:
import React from 'react';
import { Text, TouchableOpacity } from 'react-native';
export const CustomButton = ({ onPress, title }) => {
return (
<TouchableOpacity onPress={onPress}>
<Text>{title}</Text>
</TouchableOpacity>
);
};
I run react native in RN project (still without adding the lerna package)
/monorepo/AwesomeProject$ npm start
/monorepo/AwesomeProject$ npm run android
- The project runs correctly
I install my lerna package
/monorepo/AwesomeProject$ npm install ../packages/package1
I check that it has been installed in package.json
"dependencies": {
"package1": "file:../packages/package1",
"react": "18.2.0",
"react-native": "0.72.1"
},
I go to App.tsx and import the package:
import {CustomButton} from 'package1';
And I use it:
<View>
<CustomButton
title="Press me!"
onPress={() => console.log('Hello!')}
/>
</View>
Snack, code example, screenshot, or link to a repository
App.spx full code:
/**
* Sample React Native App
* https://github.com/facebook/react-native
*
* @format
*/
import React from 'react';
import type {PropsWithChildren} from 'react';
import {
SafeAreaView,
ScrollView,
StatusBar,
StyleSheet,
Text,
useColorScheme,
View,
} from 'react-native';
import {
Colors,
DebugInstructions,
Header,
LearnMoreLinks,
ReloadInstructions,
} from 'react-native/Libraries/NewAppScreen';
import {CustomButton} from 'package1';
type SectionProps = PropsWithChildren<{
title: string;
}>;
function Section({children, title}: SectionProps): JSX.Element {
const isDarkMode = useColorScheme() === 'dark';
return (
<View style={styles.sectionContainer}>
<Text
style={[
styles.sectionTitle,
{
color: isDarkMode ? Colors.white : Colors.black,
},
]}>
{title}
</Text>
<Text
style={[
styles.sectionDescription,
{
color: isDarkMode ? Colors.light : Colors.dark,
},
]}>
{children}
</Text>
</View>
);
}
function App(): JSX.Element {
const isDarkMode = useColorScheme() === 'dark';
const backgroundStyle = {
backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
};
return (
<SafeAreaView style={backgroundStyle}>
<StatusBar
barStyle={isDarkMode ? 'light-content' : 'dark-content'}
backgroundColor={backgroundStyle.backgroundColor}
/>
<ScrollView
contentInsetAdjustmentBehavior="automatic"
style={backgroundStyle}>
<Header />
<View
style={{
backgroundColor: isDarkMode ? Colors.black : Colors.white,
}}>
<Section title="Step One">
Edit <Text style={styles.highlight}>App.tsx</Text> to change this
screen and then come back to see your edits.
</Section>
<View>
<CustomButton
title="Press me!"
onPress={() => console.log('Hello!')}
/>
</View>
<Section title="See Your Changes">
<ReloadInstructions />
</Section>
<Section title="Debug">
<DebugInstructions />
</Section>
<Section title="Learn More">
Read the docs to discover what to do next:
</Section>
<LearnMoreLinks />
</View>
</ScrollView>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
sectionContainer: {
marginTop: 32,
paddingHorizontal: 24,
},
sectionTitle: {
fontSize: 24,
fontWeight: '600',
},
sectionDescription: {
marginTop: 8,
fontSize: 18,
fontWeight: '400',
},
highlight: {
fontWeight: '700',
},
});
export default App;
Screen error:
- Lingua principale
- JavaScript
- Stelle
- 5.6k
- Fork
- 699
- Merge medio
- 3g 2h
- PR unite (30g)
- 44
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di react/metro
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
react/metro#1927 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[0.83.x] Backport micromatch removal and dotfile/multipart watcher fix togetherForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
I maintainer di solito rispondono entro 1 giorno
-
`dependencies is not iterable` / `Cannot read property 'reduce' of undefined`: `FileStore` serves zero-prefixed cache files as hitsForse già presa @kkkhs l’ha presa 13 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Async chunk URLs drop the file extension, so .cjs async imports fail with "Requiring unknown module"Forse già presa @dasjideepak l’ha presa 9 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 74/100
react/metro#1959 · 2 commenti · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
app bug config windows-os
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
openai/codex#51926 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
clawsweeper:needs-product-decision clawsweeper:needs-security-review clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:security issue-rating: 🦞 diamond lobster P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
openclaw/openclaw#166870 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
⚠ needs intervention document structure changed
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
[Package] Widget primitives [Type] Enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
WordPress/gutenberg#84204 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno