用于在 React Native metro bundler 中使用动态 yarn 工作空间路径将节点模块列入黑名单的正则表达式

regex for blacklisting node module with dynamic yarn workspace path in React Native metro bundler

类似于: How to blacklist specific node_modules of my package's dependencies in react-native's packager?

我正在尝试使用需要 return 正则表达式的黑名单选项从 metro packager 中排除 react native。

我需要的是return类似的东西:

/\/DYNAMIC_PROJECT_DIRECTORY\/node_modules\/react-native\/.*/,

我可以在 DYNAMIC_PROJECT_DIRECTORY 中插入一个变量,因为它会根据另一个模块的 yarn 工作区路径而改变。

我只是不熟悉正则表达式!

谢谢

编辑:我尝试在路径中硬编码成那种格式,但它仍然无法列入黑名单,所以如果有人能指出正确的方向,告诉我什么可以排除该文件夹及其中的所有内容不胜感激!

您可以通过 RegExp 构造函数创建使用动态变量的正则表达式:

new RegExp(`\/${DYNAMIC_PROJECT_DIRECTORY}\/node_modules\/react-native\/.*`);

注:

  • 本例使用template string插入DYNAMIC_PROJECT_DIRECTORY;你也可以这样写:
    new RegExp('\/' + DYNAMIC_PROJECT_DIRECTORY + '\/node_modules\/react-native\/.*');
  • 使用这种创建正则表达式的方法时省略了前导和尾部的斜杠