javascript - React-Native metro bundler kan ikke servere noen filer
Metro-bundleren kan løse avhengighetsgrafen (appen starter i emulatoren), men kan ikke løse noen ressurser, så alle bilder i appen mangler.
Dette problemet oppstår bare etter at jeg oppgraderte fra [email til 0.59
Looking for JS files in
/Users/name/app/MyApp/artifacts
/Users/name/app/MyApp/node_modules
warning: the transform cache was reset.
Loading dependency graph, done.
DELTA [android, dev] artifacts/index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.0% (2921/2921), done.
MAP [android, dev] artifacts/index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.0% (1/1), done.
::ffff:127.0.0.1 - - [30/Aug/2019:06:27:17 +0000] "GET /node_modules/my-assets/artifacts/assets/images/Logo.png?platform=android&hash=someHash HTTP/1.1" 404 221 "-" "okhttp/3.12.1"
^^^problemet dukker opp når man navigerer til hvilken som helst visning som inneholder <Image source=... />
Modulen my-assets eksisterer og inneholder alle nødvendige ressurser
For å starte: node node_modules/react-native/local-cli/cli.js start --reset-cache --projectRoot artifacts
artifacts inneholder transpilerte .js-filer fra .ts
Min filstruktur ser slik ut
.
├── artifacts # transpiled js files
├── node_modules #npm modules
└── src # ts files
bundler serverutdata
metro.config.js
module.exports = {
watchFolders: [path.join(__dirname, 'node_modules')],
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false
}
})
},
resolver: {
blacklistRE: blacklist([ /node_modules\/.*\/node_modules\/react-native\/.*/]),
assetRegistryPath: path.resolve('node_modules/react-native/Libraries/Image/AssetRegistry')
}
}
avhengigheter :
[email /Users/name/app/MyApp
├── [email extraneous
└─┬ [email
└─┬ @react-native-community/[email
├── [email
└─┬ [email
└── [email deduped
Jeg prøvde også å gå til URL i nettleseren, men begge forespørslene ga 404.
http://localhost:8081/node_modules/my-assets/artifacts/assets/images/Logo.png?platform=android&hash=someHash
http://localhost:8081/node_modules/metro/src/Bundler/util.js # request to any js file also return 404
-- oppdatering --
Å rense hurtigbuffer og fjerne $TMPDIR hjelper ikke
Svar #1
Prøv å tømme hurtigbufferen din og prøv igjen
rm -rf $TMPDIR/react-native-packager-cache-*
rm -rf $TMPDIR/metro-bundler-cache-*
rm -rf $TMPDIR/haste-*;
yarn cache clean
Svar #2
Vennligst prøv denne kommandoen
npm cache clean
