Javascript React本机读取yaml文件

Javascript React本机读取yaml文件,javascript,react-native,yaml,Javascript,React Native,Yaml,我想在React本机源代码中读取和解析静态yaml资源文件(让我们从这里开始),我尝试了require('path/to/file.yaml'),但没有成功 我还尝试了npm的库,如readyaml或yaml-loader,所有这些库都无法正确获取yaml内容 json文件非常简单,我只需要'require('path/to/file.json')就可以立即以良好的对象格式获取所有内容 有没有办法用react native阅读yaml?这只是另一个格式不同的文本文件,所以我不认为读取和解析yam

我想在React本机源代码中读取和解析静态yaml资源文件(让我们从这里开始),我尝试了
require('path/to/file.yaml')
,但没有成功

我还尝试了npm的库,如
readyaml
yaml-loader
,所有这些库都无法正确获取yaml内容

json文件非常简单,我只需要'require('path/to/file.json')就可以立即以良好的对象格式获取所有内容


有没有办法用react native阅读yaml?这只是另一个格式不同的文本文件,所以我不认为读取和解析yaml文件会有那么困难。但是我对JavaScript不熟悉,并且在这里以C/C++后台的本地语言进行反应,因为似乎没有对yaml的内置支持,所以我相信您需要使用类似,或(将文件视为资产)。然后,您应该能够使用库(如)将字符串解析为已读。

由于似乎没有对yaml的内置支持,我相信您需要在(将文件视为资产)中使用类似或的内容。然后,您应该能够使用库(如)将字符串解析为已读。

您不能直接使用require加载yaml。 如果您正在使用Expo:

  • 使用钩子:
  • 加载资源(如果没有上面的挂钩,则无法工作):
  • 将文件读入字符串变量:
  • 从字符串解析YAML,例如使用YAML npm包:

  • 不能直接使用require加载yaml。 如果您正在使用Expo:

  • 使用钩子:
  • 加载资源(如果没有上面的挂钩,则无法工作):
  • 将文件读入字符串变量:
  • 从字符串解析YAML,例如使用YAML npm包:

  • 问题是它在本地包中,但是如果我
    require(path/to/it)
    include(path/to/it)
    我永远不会有完整的内容(甚至连字符串都没有,它只是一些奇怪的数字),而如果我`require(path/to/json')我将拥有json的全部内容…正如回答中所述,bundler并没有内置的对该类型的支持,所以
    require
    include
    只会给您一个引用。当您需要json时,您得到的不是字符串,而是JavaScript对象中经过计算的json。若json格式不正确,会发生什么?错误.F或者,要使用YAML,它必须是受支持的类型,而不是。请检查我包含的链接,无论是
    require
    还是
    include
    文件。问题是它在本地包中,但如果我
    require(path/to/it)
    include(path/to/it)
    我永远不会有完整的内容(甚至不是字符串,它只是一个奇怪的数字)而如果我'require(path/to/json')我将拥有json的全部内容…正如回答中所述,bundler并没有内置的对该类型的支持,所以
    require
    include
    只会给您一个引用。当您需要json时,您得到的不是字符串,而是JavaScript对象中经过计算的json。若json格式不正确,会发生什么?错误.F或者,要使用YAML,它必须是受支持的类型,而不是。请检查我包含的链接,无论是
    需要
    还是
    包含
    文件。
    
    const [assets, assetsLoadError] = useAssets([
        require(uri)
    ]);
    
    const loadedAsset = await Asset.loadAsync(
        require(uri)
    );
    
    let content;
    try {
        content = await FileSystem.readAsStringAsync(
            loadedAsset.localUri
        );
    } catch (e) {
        console.log({ e });
    }
    
    const parsedYAML = YAML.parse(content);