Amplify EAS Metro配置迁移blockList



当迁移到EAS时,我正在阅读迁移文档,看到EAS构建需要从expo/metro-config迁移到整个defaultConfig。我有一个艰难的时间寻找如何利用这个mtro.config.js

const blacklist = require("metro-config/src/defaults/exclusionList")
module.exports = {
resolver: {
blacklistRE: blacklist([/amplify/#current-cloud-backend/.*/]),
},
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
}

这样我就不会得到jest-haste-map错误的重复的文件名,如果添加一个函数或其他一些错误,可能会与其他。

使用此代码,一些图像不包含在构建中,所以问题是如何利用defaultConfig并避免jest-haste-map问题?

我想简单地分享我的解决方案,我知道有一些expo build项目使用了这个metro.config.jsrn-cli.config.js的一些变体来适当地配置metro捆绑器。

const blacklist = require("metro-config/src/defaults/exclusionList")
module.exports = {
resolver: {
blacklistRE: blacklist([/amplify/#current-cloud-backend/.*/]),
},
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
}

我无法找到关于const defaultConfig = getDefaultConfig(__dirname)expo/metro-config结构看起来像什么的文档(也许有人可以评论链接?),只是不得不机翼它。这适用于配置blockList(而不是blackListRE)解析器并正确加载图像:

metro.config.js

const { getDefaultConfig } = require('expo/metro-config');
const defaultConfig = getDefaultConfig(__dirname);
defaultConfig.resolver.assetExts.push('db');
defaultConfig.resolver.blockList = [/amplify/#current-cloud-backend/.*/];
module.exports = defaultConfig;

根据迁移文档,这是将任何自定义配置选项附加到const defaultConfig = getDefaultConfig(__dirname)对象的理想方式。你可以看到我设置了blockList,所以你需要阻止的任何其他文件也可以设置为这个数组。

希望这能帮助到Amplify的人!

最新更新