首页 > 解决方案 > 如何在位于不同目录的辅助函数中使用 require.context?

问题描述

我正在尝试创建一个辅助函数,该函数可用于require.context递归地获取给定文件夹中的所有文件并将它们的名称返回给我。

说我有目录结构:

  a/
    loader.js
  b/
    dont_want_this.js
    fancy_abc.js
    fancy_def.js
    fancy_ghi.js
    want_this_fancy_file.js
  c/
    more_fancy_stuff.js
  utils/
    require_helper.js

和一个帮助函数,它将递归地获取给定目录名称和文件匹配模式的所有文件:

实用程序/require_helper.js

  export const getFiles(directory, pattern) => {
    const cxt = require.context(`../${directory}`, true, pattern);
    return cxt.keys().map((key) => {
      'use strict';
      return cxt(key).default.name;
    });
  }

当我制作一个文件来使用它时:

一个/loader.js

  require { getFiles } from 'utils/require_helper'

  let someFancyFiles = getFiles('b', /fancy/);
  let someMoreFancyFiles = getFiles('c', /fancy/);

我正进入(状态Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

我怎样才能正确地做这样的事情?

标签: webpack

解决方案


推荐阅读