as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
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程序包分发。要安装,请运行以下命令。

已复制到剪贴板。

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文件位于同一文件夹中的.babelrcbabel.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日