Vue native is always executing App.js instead of .vue
Asked Answered
C

4

6

I made the first process of installation of vue-native, and I'm following the "Getting Started" Hello world tutorial (https://vue-native.io/getting-started.html), but the App.vue is never executed, only the App.js. If I remove the App.js I get an error:

"Unable to resolve "../../App" from "node_modules\expo\AppEntry.js""

How can I fix this problem to make it work and follow the tutorial with any problem?

Folder Structure:

enter image description here

App.js

import React from 'react';
import { StyleSheet, Text, View } from 'react-native';

export default class App extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text>Open up App.js to start working on your app!</Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

App.vue

<template>
  <view class="container">
    <text class="text-color-primary">My Vue Native App</text>
    </view>
</template>

<style>
.container {
  background-color: white;
  align-items: center;
  justify-content: center;
  flex: 1;
}
.text-color-primary {
  color: blue;
}
</style>

Thank you

Cardsharp answered 16/12, 2018 at 20:6 Comment(4)
it would help if you post more info such as folder structure and your export statement on your app.js. from the error it is looking for a js file named AppEntry.js? so post your folder structure and a bit of information about how you installed vue and or created the app - like did you use vue-cli?Yuma
I have edited the question, I have added the App.js, App.vue and folder structure.Cardsharp
Sorry, am a bit confused here. Are you using vue or react? How did you wireup vue? did you use the vue-cli to create the app, I mean that is your get-started doc and upon following it, it works just fineYuma
I'm using Vue, I just typed in the console "vue-native init <project-name>", and then I executed it with "npm start"Cardsharp
S
6

Although the answers might work for some. There is another way to fix this issue without deleting any files. Navigate to the node modules folder. Search for the expo folder.

Open the AppEntry.js file. It should look like this:

import 'expo/build/Expo.fx';
import registerRootComponent from 'expo/build/launch/registerRootComponent';
import { activateKeepAwake } from 'expo-keep-awake';

import App from '../../App'; // we will change this!

if (__DEV__) {
  activateKeepAwake();
}

registerRootComponent(App);

Modify Appentry.js to this:

import 'expo/build/Expo.fx';
import registerRootComponent from 'expo/build/launch/registerRootComponent';
import { activateKeepAwake } from 'expo-keep-awake';

import App from '../../App.vue'; // Will use App.vue as the entry point

if (__DEV__) {
  activateKeepAwake();
}

registerRootComponent(App);
Skantze answered 13/2, 2020 at 9:53 Comment(0)
T
1

The following worked for me:
At first you delete app.js This will give you an error, but don't worry. You will have to run the npm install command. After this, run vue-native again with npm start

This will run the app.vue file normally

Towage answered 20/2, 2019 at 19:47 Comment(2)
I have the same issue, and this solution don't workedBushido
Not working! The error is still ` Unable to resolve module ./App from /home/abc/coding/learn/vue-native/sample/index.js: The module ./App could not be found from /home/abc/coding/learn/vue-native/sample/index.js. Indeed, none of these files exist:`Finedraw
M
0

Had a same issue. Below works for me

In app.json add

"sourceExts": [ "js", "json", "ts", "tsx", "jsx", "vue"]

Inside "packagerOpts"

"packagerOpts": { "sourceExts": [ "js", "json", "ts", "tsx", "jsx", "vue"], "config": "metro.config.js"}

Read it from: https://github.com/GeekyAnts/vue-native-core/issues/117

Marvelofperu answered 23/8, 2019 at 15:13 Comment(0)
F
0

If you are viewing on web browser(which isn't production ready), i think it will look for App entry file in this order js > json > vue. So i think it's impossible it will seek out App.vue.

For viewing on android phone, stop the Expo Dev Tools in terminal, delete App.js, then run npm start order or npm run android

Fumikofumitory answered 30/8, 2019 at 21:10 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.