regex用于在React Native Metro bundler中将具有动态纱线工作空间路径的节点模块列入黑名单

时间:2019-01-07 04:01:48

标签: javascript regex react-native yarn-workspaces

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

我正在尝试使用需要返回正则表达式的黑名单选项来排除Metro打包程序的本机响应。

我需要返回的内容如下:

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

我可以在其中将变量插入DYNAMIC_PROJECT_DIRECTORY,因为它会根据其他模块的纱线工作空间路径而变化。

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

谢谢

编辑:我尝试将路径硬编码为该格式,但仍无法将其列入黑名单,因此,如果有人可以将正确的方向指向我,以排除该文件夹及其中的所有内容,感谢!

1 个答案:

答案 0 :(得分:6)

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

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

注意:

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