简体   繁体   中英

React-Native - Error: ReferenceError: SHA-1 for file metro/src/lib/polyfills/require.js is not computed

im getting this error in react-native, and the project cannot start using an android emulator. I'm not using Expo, and tried to clean gradlew and delete node_modules and see if it have some errors but nothing have worked for me.

This is the error log i have:

error: ReferenceError: SHA-1 for file /home/logan/.nvm/versions/node/v12.16.1/lib/node_modules/react-native/node_modules/metro/src/lib/polyfills/require.js (/home/logan/.nvm/versions/node/v12.16.1/lib/node_modules/react-native/node_modules/metro/src/lib/polyfills/require.js) is not computed
    at DependencyGraph.getSha1 (/home/logan/.nvm/versions/node/v12.16.1/lib/node_modules/react-native/node_modules/metro/src/node-haste/DependencyGraph.js:263:13)
    at /home/logan/.nvm/versions/node/v12.16.1/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:211:26
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (/home/logan/.nvm/versions/node/v12.16.1/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:46:24)
    at _next (/home/logan/.nvm/versions/node/v12.16.1/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:66:9)
    at /home/logan/.nvm/versions/node/v12.16.1/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:71:7
    at new Promise (<anonymous>)
    at /home/logan/.nvm/versions/node/v12.16.1/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:63:12
    at Transformer.transformFile (/home/logan/.nvm/versions/node/v12.16.1/lib/node_modules/react-native/node_modules/metro/src/DeltaBundler/Transformer.js:236:7)
    at /home/logan/.nvm/versions/node/v12.16.1/lib/node_modules/react-native/node_modules/metro/src/Bundler.js:87:34

I have used this in metro/src/node-haste/DependencyGraph.js, but i don't know if it is the best solution because i will lose it if i delete node_modules again:

    if (!sha1) {
      return getFileHash(resolvedPath)
      function getFileHash(file) {
        return require('crypto')
          .createHash('sha1')
          .update(fs.readFileSync(file))
          .digest('hex')
      }
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM