React native 使用rnpm链接非字体资产
有很多关于使用rnpm包含字体资源的教程。以下是步骤:React native 使用rnpm链接非字体资产,react-native,assets,react-native-cli,React Native,Assets,React Native Cli,有很多关于使用rnpm包含字体资源的教程。以下是步骤: 把字体放进去,比如说,/assets/fonts 将以下代码段添加到package.json: "rnpm": { "assets": [ "./assets/fonts", ] } 运行反应本机链接 对于字体资产来说效果很好,但是对于其他类型呢?我需要包含一个文本文件,但对文本文件资源重复上述步骤似乎没有任何效果。我错过了什么?在互联网上没有提及,所以我甚至不确定这在rnpm中是否可行 编辑:更具体地说,我在/asse
/assets/fonts
"rnpm": {
"assets": [
"./assets/fonts",
]
}
反应本机链接
/assets/raw
目录中添加了一个文件.txt
,并在package.json中的rnpm
配置中的/assets/raw
旁边添加了/assets/font
。运行react native link
后,我希望file.txt
出现在Android项目资产目录(/Android/app/src/main/assets
)和iOS项目的“复制捆绑资源”构建阶段,但没有发生<代码>反应本机链接正常运行,未产生任何错误
我的最终目标是在应用程序包中包含一个文本文件,并在运行时对其进行访问。另一种选择是用JSON包装文本,但这样一来,文本就会在JS包中增加约25%的大小,这可能不太好。有些人还建议react native fs
读取该文件,但我不确定该放在哪里,这样它就可以在Android和iOS上使用。rnpm知道将Android和iOS的资产放在哪里(以及如何将它们复制到捆绑包中),因此使用它似乎是一种可行的方法,但我无法让它与文本资产一起工作
有什么想法或建议吗?在React-Native CLI中搜索之后,我发现,
React-Native链接只处理字体。以下是/node\u modules/react native/local cli/link/android/copyAssets.js
中的相关代码:
/**
* Copies each file from an array of assets provided to targetPath directory
*
* For now, the only types of files that are handled are:
* - Fonts (otf, ttf) - copied to targetPath/fonts under original name
*/
module.exports = function copyAssetsAndroid(files, targetPath) {
const assets = groupFilesByType(files);
(assets.font || []).forEach(asset =>
fs.copySync(asset, path.join(targetPath, 'fonts', path.basename(asset)))
);
};
如您所见,groupFilesByType
按MIME类型(字体、文本等)对所有文件进行分组,但实际上只有字体被复制到项目中
其他人以前也遇到过这个问题。增加了对视频资源的支持,但没有合并。显然,方法是使用packager。您能提供更多关于您尝试过的内容和看到的结果的信息吗?@ChrisGeirman当然,请查看更新。您能进一步说明“使用packager”的含义吗?