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

Sam*_*ews 5 javascript regex react-native yarn-workspaces

类似于: 如何在react-native的packager中将我的包的依赖项的特定node_modules列入黑名单?

我试图使用需要返回正则表达式的黑名单选项从地铁包装器中排除本机反应.

我需要的是返回类似的东西:

/\/DYNAMIC_PROJECT_DIRECTORY\/node_modules\/react-native\/.*/,
Run Code Online (Sandbox Code Playgroud)

我可以在DYNAMIC_PROJECT_DIRECTORY中插入一个变量,因为它将根据另一个模块的纱线工作空间路径而改变.

我对正则表达式并不熟悉!

谢谢

编辑:我尝试在该格式的路径中进行硬编码,但仍然无法使用黑名单,所以如果有人可以指出我正确的方向,那么排除该文件夹及其中的所有内容将非常感激!

Pat*_*und 6

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

new RegExp(`\/${DYNAMIC_PROJECT_DIRECTORY}\/node_modules\/react-native\/.*`);
Run Code Online (Sandbox Code Playgroud)

注意:

  • 这个例子是使用模板字符串来插入DYNAMIC_PROJECT_DIRECTORY; 你也可以写:
    new RegExp('\/' + DYNAMIC_PROJECT_DIRECTORY + '\/node_modules\/react-native\/.*');
  • 使用此方法创建正则表达式时,将省略前导和尾部斜杠