gpt4 book ai didi

javascript - 使用黑名单正则表达式仅排除 Metro Bundler 中的顶级目录? (黑名单RE)

转载 作者:行者123 更新时间:2023-12-05 06:18:01 24 4
gpt4 key购买 nike

我认为这主要是关于正则表达式的问题,但我可能错了。


假设我想排除项目根目录中名为 art 的文件夹。

我在 CLI 中的输出正则表达式如下所示:

blacklistRE: /(all|the|other|matchers|art\.*)$/

但这会导致错误:

Unable to resolve "art/core/color" from "..\..\node_modules\react-native\Libraries\ART\ReactNativeART.js"

如何在不影响所有子目录的情况下排除顶级 art 目录?

来自 bundler 的文档

blacklistRE Type: RegExp

A RegEx defining which paths to ignore. https://facebook.github.io/metro/docs/configuration/#blacklistre

我正在调用的函数的代码:它简短且自包含在这个文件中,如果任何比我更擅长正则表达式的人可能有任何见解。 https://github.com/facebook/metro/blob/8c53c38932c3e396109014ac707287fbdf2500d3/packages/metro-config/src/defaults/blacklist.js#L35-L44

我的完整代码如下:

const blacklist = require('metro-config/src/defaults/blacklist');

const regexStrings = [
// DEFAULTS
'.*\\android\\ReactAndroid\\.*',
'.*\\versioned-react-native\\.*',
'node_modules[\\\\]react[\\\\]dist[\\\\].*',
'node_modules[\\\\].cache[\\\\].*',
'packages[\\\\]electron[\\\\].*',
'node_modules[\\\\]electron.*',
'website\\node_modules\\.*',
'heapCapture\\bundle.js',
'.*\\__tests__\\.*',
'.*\\.git\\.*',
// CUSTOM
'art\\.*',
]

const constructBlacklistRE = () => {
const formedRegexes = regexStrings.map(piece => new RegExp(piece));
console.warn(formedRegexes);
return blacklist([...formedRegexes]);
};

const config = {
blacklistRE: constructBlacklistRE(),
}

最佳答案

这应该有效:

const blacklist = require('metro-config/src/defaults/blacklist');
const path = require('path');

const ignoreTopLevelFolders = [
'art'
// add more top level folders here
].map(f => new RegExp(`${ path.resolve(f) }/.*`));

module.exports = { resolver: { blacklistRE: blacklist(ignoreTopLevelFolders) } };

关于javascript - 使用黑名单正则表达式仅排除 Metro Bundler 中的顶级目录? (黑名单RE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61419633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com