如何修复RN突然无法找到本地模块(无法解析模块)?

时间:2017-05-01 22:33:26

标签: react-native

我有一个奇怪的情况,突然我的RN应用程序不会加载任何场景。该应用程序运行良好数周,我没有移动任何文件。失败:

error: bundling: UnableToResolveError: Unable to resolve module `./src/scenes/splash` from `/Users/jcollum/projects/starsApp/index.ios.js`: Directory /Users/jcollum/projects/starsApp/src/scenes/splash doesn't exist
at Promise.resolve.then (/Users/jcollum/projects/starsApp/node_modules/react-native/packager/src/node-haste/DependencyGraph/ResolutionRequest.js:445:15)
at process._tickCallback (internal/process/next_tick.js:109:7)

我的导入语句如下:

import React, { Component } from 'react';
import { AppRegistry, StyleSheet, Text, View } from 'react-native';
import { Router, Scene } from 'react-native-router-flux';
import Icon from 'react-native-vector-icons/FontAwesome';
import Splash from './src/scenes/splash';

场景肯定存在:

$ ll /Users/jcollum/projects/starsApp/src/scenes/splash.js 
-rw-r--r--  1 jcollum  staff   722B Apr 26 10:12 /Users/jcollum/projects/starsApp/src/scenes/splash.js

它有一个export default

import React, { Component, PropTypes } from 'react';
import { View, Text, TouchableHighlight, Image } from 'react-native';
import styles from '../styles'
import { Actions } from 'react-native-router-flux';

export default class Splash extends Component {
  componentWillMount() {
    setTimeout(() => {
      Actions.Home()
    }, 1000);
  }

  render() {
    console.log(`rendering Splash`);
    return (
      <View ...

我尝试过的事情:

  • 重新启动打包程序
  • 重置内容和设置
  • 签出先前的提交
  • 清除临时目录:rm -fr $TMPDIR/react-*

react-native --version

react-native-cli: 2.0.1
react-native: 0.43.2

可能导致这种情况的原因是什么?为什么这突然停止加载资源?接下来要尝试什么?

3 个答案:

答案 0 :(得分:2)

解决方案(不知道为什么会这样,对不起):

  1. 停止任何正在运行的打包程序

  2. 将此添加到package.json:"clean-start": "rm -rf node_modules && yarn install && rm -rf $TMPDIR/react* && npm start --reset-cache",(如果不使用纱线,则为npm install)

  3. npm run clean-start

答案 1 :(得分:1)

就我而言,跑了

npm cache verify

在我的项目目录的控制台中,一切都很顺利。希望它有所帮助

答案 2 :(得分:0)

我曾经遇到过类似的问题而我所做的并不是什么花哨的事情,我只是剪切了所有给出错误并在某个地方复制的文件(在我的项目目录之外),然后再将这些文件粘贴到他们的位置帮助我。

干杯:)