使用VMRP在您的应用中导入库
您可以使用Vega模块解析器预设 (VMRP) 在应用中导入库。该预设会将第三方库替换为Vega平台移植等效库。使用此预设,即可开始将Vega用于已在iOS或Android上运行的应用。
VMRP是必需的,因为默认情况下Vega实现拆分包,而JavaScript包不支持标准的npm别名和覆盖。VMRP提供了一种别名解决方案,以确保在这种拆分包架构中实现正确的模块解析。
如果没有此预设,则必须导入Vega移植的与现有库等效的库。例如,如果您的应用使用react-native-gesture-handler,并且您想要在Vega上使用该库,则需要在该库的Vega版本的代码中添加以下这行代码:
import { ... } from '@amazon-devices/react-native-gesture-handler'
如果使用VMRP,则导入名称可作为'react-native-gesture-handler'继续使用,而在捆绑时,该库会被换出。
关于预设
VMRP会使用它来浏览程序包的node_modules,构造Vega移植程序包与您的应用请求的等效库之间的关系。
如果版本等效,则建立映射并将该关系记录在输出中。
如果版本不等效,或者模块解析器由于任何其他原因而解析失败,则会记录错误输出。
安装
VMRP作为单独的NPM程序包分发。要安装,请运行以下命令。
npm install --save-dev "@amazon-devices/kepler-module-resolver-preset"
此外,此命令应包含babel-plugin-module-resolver。
npm install --save-dev "babel-plugin-module-resolver"
此外,您需要安装原始第三方库及其Vega移植等效库这两者。例如,如果您想将手势处理程序替换为其Vega等效库,则必须在package.json依赖项中安装这两个程序包,其具体版本如下所示。
"dependencies": {
...
"@amazon-devices/react-native-gesture-handler": "2.0.0+2.13.0",
"react-native-gesture-handler": "2.13.0",
...
}
设置
安装后,需要告知babel您要在构建代码时使用新的预设,为此需要更改babel的配置文件。
该文件通常是与package.json文件位于同一文件夹中的.babelrc或babel.config.js:
module.exports = {
presets: [
'module:metro-react-native-babel-preset',
'module:@amazon-devices/kepler-module-resolver-preset', // 支持使用VegaModuleResolverPreset
...
],
...
};
之后,应清理并重新构建程序包。如果模块替换成功,您会在日志中看到说明库已调换的输出,例如:
[stdout] transform: [Kepler模块解析器] 已将 <LibraryNameHere> 映射到 <VegaPortedLibraryNameHere>@<Version>
Last updated: 2025年9月30日

