as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

使用VMRP在您的应用中导入库

使用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程序包分发。

  1. 要安装,请运行以下命令。

    已复制到剪贴板。

    npm install --save-dev "@amazon-devices/kepler-module-resolver-preset"
    
  2. 此命令包含babel-plugin-module-resolver

    已复制到剪贴板。

    npm install --save-dev "babel-plugin-module-resolver"
    
  3. 安装原始第三方库及其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日