【发布时间】:2019-07-25 06:08:39
【问题描述】:
您好,
我正在关注 this article 来设置 react-native + web 代码共享。 Here is the repo link 使用上述文章中描述的准系统 monorepo 设置。
我成功地安装了上面文章中描述的准系统 monorepo 应用程序,然后我将现有的 react-native 应用程序代码移植到此架构(在组件文件夹中)并让移动应用程序正常工作。强>
当我尝试运行 web 应用程序时遇到一些错误(它使用 react-native-web 将 react-native 转换为 web)。并不是我没有预料到会出现一些错误,我知道react-native-web 还不是那么稳定,对于高于 0.55 的 react-native 版本和所有这些问题来说都不是最新的。
但我认为我在这里遇到的错误与我的 webpack 配置更相关。我的config-override.js 文件与original one 基本相同,除了这部分(我更改了它以希望解决我将在下面提到的错误):
const appIncludes = [
resolveApp('src'),
resolveApp('../components/src'),
resolveApp('../../node_modules/react-navigation-deprecated-tab-navigator'),
resolveApp('../../node_modules/react-native-color-matrix-image-filters'),
resolveApp('../../node_modules/react-native-htmlview'),
resolveApp('../../node_modules/react-native-loading-spinner-overlay'),
resolveApp('../../node_modules/@react-native-community/async-storage'),
resolveApp('../../node_modules/react-native-cookies'),
resolveApp('../../node_modules/react-native-router-flux'),
resolveApp('../../node_modules/react-native-actionsheet'),
resolveApp('../../node_modules/react-native-autocomplete-input'),
resolveApp('../../node_modules/react-native-circular-progress'),
resolveApp('../../node_modules/react-native-google-places-autocomplete'),
resolveApp('../../node_modules/react-native-image-progress'),
resolveApp('../../node_modules/react-native-image-zoom-viewer'),
resolveApp('../../node_modules/react-native-image-pan-zoom'),
resolveApp('../../node_modules/react-native-keyboard-aware-scroll-view'),
resolveApp('../../node_modules/react-native-linear-gradient'),
resolveApp('../../node_modules/react-native-permissions'),
resolveApp('../../node_modules/react-native-phone-input'),
resolveApp('../../node_modules/react-native-picker-select'),
resolveApp('../../node_modules/react-native-progress'),
resolveApp('../../node_modules/react-native-push-notification'),
resolveApp('../../node_modules/react-native-snap-carousel'),
resolveApp('../../node_modules/react-native-svg'),
resolveApp('../../node_modules/react-native-tab-view'),
resolveApp('../../node_modules/react-navigation-drawer'),
resolveApp('../../node_modules/react-navigation-stack'),
resolveApp('../../node_modules/react-native-screens'),
resolveApp('../../node_modules/react-navigation-tabs'),
resolveApp('../../node_modules/@react-navigation'),
resolveApp('../../node_modules/react-native-router-flux'),
resolveApp('../../node_modules/react-native-gesture-handler'),
resolveApp('../../node_modules/react-navigation'),
]
我在yarn workspace web start 上遇到的几个或错误是:
import {
Grayscale
} from 'react-native-color-matrix-image-filters';
它给出:
尝试导入错误:“灰度”未从 'react-native-color-matrix-image-filters'。
如果我只是删除此导入及其使用,我会得到:
尝试导入错误:“react-native-cookies”不包含 默认导出(导入为“CookieManager”)。
开启:
import CookieManager from 'react-native-cookies';
在玩的时候,我也得到了:
...../node_modules/react-native-router-flux/src/navigationStore.js
Attempted import error: 'TabBarBottom' is not exported from 'react-navigation-deprecated-tab-navigator' (imported as 'DEPRECATED_TabBarBottom').
我很确定这是我的 webpack/babel 配置有问题(config-override.js 文件)。我当然知道在解决这些问题后我会遇到更多错误。这种设置可能最终对我们根本不起作用。但值得一试,在您的帮助下,我必须能够解决这些错误。
谢谢。
【问题讨论】:
标签: javascript react-native webpack babeljs react-native-web