我正在尝试将我的 React-Native Android 应用程序转换为 React-Native Web 应用程序。在执行此操作时,我在 @react-native-picker\picker 中遇到错误。
编译失败 ./node_modules/@react-native-picker/picker/js/Picker.web.js SyntaxError: C:\Users\User\Desktop\react-native\TestProject\node_modules@react-native-picker\picker\js\Picker.web.js:意外的 token (9:12)
7 |
8 | import React from 'react';
> 9 | import type {
| ^
10 | ViewStyleProp,
11 | TextStyleProp,
12 | } from 'react-native/Libraries/StyleSheet/StyleSheet';
如何解决这个问题?
最佳答案
看起来 Picker.web.js
包含使用 Flow 编写的代码,因此您需要确保您的 Web 项目启用了 Flow 支持。
由于您使用的是 Create React App,因此您需要自定义配置,以便为 node_modules
内的包启用 Babel:
- 安装
customize-cra
和react-app-rewired
:
npm install --save-dev customize-cra react-app-rewired
按照以下步骤完成
react-app-rewired
的安装:https://github.com/timarney/react-app-rewired#how-to-rewire-your-create-react-app-project为
node_modules/@react-native-picker/picker
配置 Babel include:
// config-overrides.js
const path = require('path');
const {
babelInclude,
override,
} = require('customize-cra');
module.exports = override(
babelInclude([
path.resolve('src'),
path.resolve(__dirname, 'node_modules/@react-native-picker/picker'),
]),
);
关于reactjs - react native Android 应用程序 react native Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65474486/