【发布时间】:2020-01-07 20:28:29
【问题描述】:
我想在我的应用程序中使用“react-native-image-picker”。导入并遵循 github 说明中的安装说明后。我在运行时遇到 Metro bundler 崩溃。它似乎无法找到“react-image-picker”或其依赖项?
我尝试过初始化一个新项目并且只安装图像选择器。我尝试在根目录中运行“react-native link”和“react-native link react-native-image-picker”。我试过用expo初始化项目。我检查了 Metro 声称丢失的目录,它们看起来不错。
import React from 'react';
import {
StyleSheet,
ScrollView,
View,
Text,
Button
} from 'react-native';
import ImagePicker from 'react-native-image-picker';
const options = {
title: 'Select Avatar',
customButtons: [{ name: 'fb', title: 'Choose Photo from Facebook' }],
storageOptions: {
skipBackup: true,
path: 'images',
},
};
const App = () => {
return (
<Button title="Select Image" onPress={() => {
ImagePicker.showImagePicker(options, (response) => {console.log('Response = ', response);})
}} />
);
};
错误:捆绑失败:错误:尝试从文件 /Users/owenmorris/Documents/GitHub/fecebook/App.js 解析模块 react-native-image-picker 时,已成功找到包 /Users/owenmorris/Documents/GitHub/fecebook/node_modules/react-native-image-picker/package.json。但是,这个包本身指定了一个无法解析的main 模块字段(/Users/owenmorris/Documents/GitHub/fecebook/node_modules/react-native-image-picker/src/index.ts。事实上,这些文件都不存在:
/Users/owenmorris/Documents/GitHub/fecebook/node_modules/react-native-image-picker/src/index.ts(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)-
/Users/owenmorris/Documents/GitHub/fecebook/node_modules/react-native-image-picker/src/index.ts/index(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)在 ResolutionRequest.resolveDependency (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:65:15) 在 DependencyGraph.resolveDependency (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/node-haste/DependencyGraph.js:283:16) 在 Object.resolve (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/lib/transformHelpers.js:264:42) 在 /Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/DeltaBundler/traverseDependencies.js:399:31 在 Array.map() 在 resolveDependencies (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:18) 在 /Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/DeltaBundler/traverseDependencies.js:269:33 在 Generator.next () 在 asyncGeneratorStep (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/DeltaBundler/traverseDependencies.js:87:24) 在 _next (/Users/owenmorris/Documents/GitHub/fecebook/node_modules/metro/src/DeltaBundler/traverseDependencies.js:107:9) BUNDLE [ios, dev] ./index.js ░░░░░░░░░░░░░░░░ 0.0% (0/1),失败。
【问题讨论】:
-
通过重新运行
react-native start重新启动metro bundler -
我能够让 Metro 在模拟器中构建和启动我的应用程序,但现在我又回到了“无法找到 'react-native-image-picker'”并建议运行 ' react-native link react-native-image-picker' 我已经完成了,但它仍然不起作用。由于某种原因,它似乎无法加载图像选择器。
-
我在 react-native-image-picker 社区 github 上阅读了更多内容,一些有类似问题的人幸运地回滚了他们的版本。我尝试了这个回滚,它修复了定位依赖项,但现在“null 不是对象:(评估 'ImagePickerManager.showImagePicker')”
标签: ios react-native package-managers react-native-image-picker metro-bundler