是否有一种方法可以将导入/要求合并到javascript中的一行?



我在一个项目中有许多不同的模块,每个模块都有自己的文件夹,在每个模块中,有3个文件:

  • index.js
  • index.test.js
  • data.js

每个模块都有这些文件,文件名相同,内容不同。

对于index.test.js文件,所有模块中所有index.test.js文件的import语句都是相同的,如下所示:

const runAnalysis = require('./index');
const { data } = require('./data');
const { formatData } = require('utils');
const formattedData = formatData(data);

由于这些import语句对于所有index.test.js文件都是相同的,是否有一种方法可以将这些语句合并到一行中,因此它不必在每个模块中重复一遍又一遍?

是否有办法把这些导入语句在头文件,然后每个index.test.js可以导入头文件?

不确定这是否有效或推荐,但它有效。

创建一个util js文件,它可以存在于项目根目录中,让我们用以下代码将其命名为import-util.js。

const { formatData } = require('utils');
const getMyImports = (dirname) => {
const runAnalysis = require(`${dirname}/index`);
const { data } = require(`${dirname}/data`);
const formattedData = formatData(data);

return {
runAnalysis,
formattedData
}  
};
exports.getMyImports = getMyImports;

那么这个文件可以像这样使用来获得runAnalysisformattedData

const { runAnalysis, formattedData } = require('../import-util').getMyImports(__dirname);

__dirname是使它工作的技巧,它提供了index.js和data.js要导入的目录路径。

这一行现在可以在每个模块文件夹中使用,给定文件夹包含index.js和data.js,它的工作原理与以下4行代码相同。

const runAnalysis = require('./index');
const { data } = require('./data');
const { formatData } = require('utils');
const formattedData = formatData(data);

相关内容

  • 没有找到相关文章

最新更新