首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块未找到:错误:无法解决'react-native/Libraries/Image/resolveAssetSource‘

模块未找到:错误:无法解决'react-native/Libraries/Image/resolveAssetSource‘
EN

Stack Overflow用户
提问于 2019-01-30 11:54:30
回答 1查看 5.3K关注 0票数 2

我正在添加一个音频模块在我目前的反应-本机项目。我尝试过安装几个模块(反应-自然声反应-本地-轨道-播放器)。在两个模块中获得相同的错误输出,这总是指向'react-native/Libraries/Image/resolveAssetsource'中没有找到的模块。

代码语言:javascript
复制
ERROR in ./node_modules/react-native-track-player/lib/index.js
Module not found: Error: Can't resolve 'react-native/Libraries/Image/resolveAssetsource' in 'D:\workspaces\web\react\blink\node_modules\react-native-track-player\lib'
 @ ./node_modules/react-native-track-player/lib/index.js 1:401-459
 @ ./node_modules/react-native-track-player/index.js
 @ ./components/ui/BlinkAudio/BlinkAudio.web.js
 @ ./components/ui/BlinkAudio/index.web.js
 @ ./components/dialogs/ResourceDetails/ResourceDetails.js
 @ ./components/dialogs/ResourceDetails/index.js
 @ ./components/panels/catalog/CatalogPanel.js
 @ ./components/parts/Main/Main.js
 @ ./components/parts/Main/index.js
 @ ./index.web.js

这是当前在音频模块的索引文件中导入的--本机声道播放器:

代码语言:javascript
复制
import { Platform, AppRegistry, DeviceEventEmitter, NativeEventEmitter, NativeModules } from 'react-native';
import resolveAssetSource from 'react-native/Libraries/Image/resolveAssetsource';

我试图修复这一问题,包括从“react原生”导入的“resolveAssetsource”,如下所示:

代码语言:javascript
复制
import { 
    Platform, 
    AppRegistry, 
    DeviceEventEmitter, 
    NativeEventEmitter, 
    NativeModules, 
    resolveAssetsource 
} from 'react-native';

但我不太确定这是否是最好的方式,通常我不喜欢直接接触包节点模块。

我还试图将音频模块排除在webpack装载机之外,但没有结果。

代码语言:javascript
复制
 module: {
    loaders: [
      {
        test: /\.js?$/,
        exclude: function (modulePath) {
          return (
            /node_modules/.test(modulePath) &&
            !/node_modules(\\|\/)react-native-track-player/.test(modulePath)
          );
        },

我想知道是否有人能帮我找到一个答案,如果有可能解决这个反应-本机问题,因为我认为这些音频模块错误地调用了resolveAssetsource,或者在另一方面,react本机不为第三方提供这个特定的库,我不知道。

EN

回答 1

Stack Overflow用户

发布于 2020-04-10 07:05:20

这似乎是一个语法错误问题。没有名为resolveAssetsource,的文件或模块,该模块和文件名为resolveAssetSource,其大写为S

尝试使用react-native-track-player删除yarn remove react-native-track-player并重新安装它(或删除整个node_modules目录并再次运行yarn install ),因为react-native-track-player/lib/index.js下的源代码正确地使用了它,没有任何错误:

代码语言:javascript
复制
import { Platform, AppRegistry, DeviceEventEmitter, NativeEventEmitter, NativeModules } from 'react-native';
import resolveAssetSource from 'react-native/Libraries/Image/resolveAssetSource';

如果您在其他地方使用它,就必须像这样导入它:

代码语言:javascript
复制
import resolveAssetSource from 'react-native/Libraries/Image/resolveAssetSource';

但是这并不是最好的方法,因为这个方法是RN Image类/组件Image.resolveAssetSource(source)的成员,所以最好导入Image组件并像这样使用它:

代码语言:javascript
复制
import { 
    Platform, 
    AppRegistry, 
    DeviceEventEmitter, 
    NativeEventEmitter, 
    NativeModules, 
    Image  // Add Image import
} from 'react-native';

// and use the function as of Image method

let audioAssetSource = Image.resolveAssetSource(audioSource);

无论哪种方式,您都可以让该方法工作并解析资产源信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54440051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档