【问题标题】:Listing all files that require/import a specific file列出所有需要/导入特定文件的文件
【发布时间】:2018-12-06 17:16:42
【问题描述】:

我有一个utilities.js 文件,我想将它移到它自己的纱线包中。

目前有很多文件需要utilities.js通过相对路径,一些例子是

const utils = require('../../../utilities/utilities');
const utilities = require('../../../../../utilities/utilities.js')
const utils = require('./utilities.js')
import { someFunction } from '../../../utilities/utilities.js'

我正在寻找一种解决方案,将所有 require/imports 语句重命名为 @myUtilities

我尝试将 VSCodes 查找功能与正则表达式匹配一起使用,但我失败了或包含了一些不希望的匹配项。

我能想到的最好的模式是

\'(..?\/)*(\/)?utilities(\/utilities)?(.js)?\'

有没有更好的解决方案?

【问题讨论】:

  • 您不能在您的自己的代码(不在node_modules 中)的所有文件夹中查找utilities.js 吗?无论路径如何,这都应该找到所有实例。
  • 我正在寻找替换所有东西,包括../../../,所以很遗憾这不起作用。

标签: node.js regex refactoring yarn-workspaces


【解决方案1】:

你可以试试这个

(?:import|require).*?(['"].*utilities(\/utilities)?(.js)?['"])

Demo

【讨论】:

  • 我应该提到 VSCode 使用 JS 进行正则表达式,而且演示似乎比单引号中捕获的内容更多
  • @DimitrijeM 我做了一些改变,你可以看看。
  • 该示例仍在捕获超出要求的内容,我只需要包含单引号和例如的文本。 '../../../utilities/utilities'
  • @DimitrijeM 只是检查组而不是完全匹配。在组中我已经捕获了你想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
  • 2013-10-15
  • 1970-01-01
相关资源
最近更新 更多