1

我刚刚创建了一个新的“vue native”项目。我没有更改默认空白应用程序中的任何内容。我设法在我的 android 设备上运行它,但无法在我的浏览器上运行它。

我运行“npm start”=>“metro bundler”打开。然后我点击“在网络浏览器中运行”,我收到以下错误:

错误

同样,我没有改变任何东西。我只想启动一个新项目时自动生成的默认应用程序。

有人已经遇到过这个问题吗?谢谢

4

1 回答 1

2

“这是一个已知问题,目前似乎无法在 web 中运行 vue-native 应用程序,因为 AppEntry.js 尝试导入 ../../App。默认打包程序配置将 .json 指定为有效文件扩展名。出于某种原因,在 web 中,Expo 似乎正在寻找 App.json 而忽略了 App.vue。

https://github.com/GeekyAnts/vue-native-core/issues/268

查看 vue-native creators 2020 7 月 7 日的官方声明:

“在 iOS 和 Android 上,Metro 是 JS 构建管道中唯一需要的组件。我们有一个自定义转换器(在 vue-native-scripts 中),Metro 使用它来将 .vue 文件转换为等效的 React Native 代码,然后有效地通过管道传输进入 Metro (for .js) 文件使用的默认 Babel 转换器。

但是,在 web 上,需要使用 Webpack 进行中间转换,以便代码可以在 web 上运行。此处也使用了 Metro,但不用于转换。

根据我的发现,Expo Webpack 配置使用 babel-loader 来处理 .js 文件。所以我们可能需要一个用于 .vue 文件的自定义 Webpack 加载器(或者可能是其他一些可以完成这项工作的机制)。我的猜测是 vue-native-scripts 导出的转换器将有助于制作加载器。但是加载器需要满足 Webpack 加载器 API 要求并公开原始、音高等,如此处所述。我们还没有制定出实现的细节。在 iOS 和 Android 上,Metro 是 JS 构建管道中唯一需要的组件。我们有一个自定义转换器(在 vue-native-scripts 中),Metro 使用它来将 .vue 文件转换为等效的 React Native 代码,然后有效地通过管道传输到 Metro(用于 .js)文件使用的默认 Babel 转换器。

但是,在 web 上,需要使用 Webpack 进行中间转换,以便代码可以在 web 上运行。此处也使用了 Metro,但不用于转换。

根据我的发现,Expo Webpack 配置使用 babel-loader 来处理 .js 文件。所以我们可能需要一个用于 .vue 文件的自定义 Webpack 加载器(或者可能是其他一些可以完成这项工作的机制)。我的猜测是 vue-native-scripts 导出的转换器将有助于制作加载器。但是加载器需要满足 Webpack 加载器 API 要求并公开原始、音高等,如此处所述。我们还没有制定出实施的细节。”

https://github.com/GeekyAnts/vue-native-core/issues/268#issuecomment-640222479

好消息是设备和模拟器运行与 expo 一起工作,并且大多数 vue-native 被设计为在移动设备上运行而不是在网络上运行 :)

对于 web,您可以使用 vuejs 拥有类似的代码库。

于 2020-10-19T19:59:22.133 回答