这个方法并不是require,js上面的一个方法,而是v也在node的环境自己封装了一层,那么我们也可以自己实现一下,常常用来多文件引入
directory
:要搜索的文件夹目录useSubdirectories
:是否还应该搜索它的子目录regExp
:一个匹配文件的正则表达式
if (typeof require.context === 'undefined') {
const fs = require('fs');
const path = require('path');
require.context = (base = '.', scanSubDirectories = false, regularExpression = /\.js$/) => {
const files = {};
function readDirectory(directory) {
fs.readdirSync(directory).forEach((file) => {
const fullPath = path.resolve(directory, file);
if (fs.statSync(fullPath).isDirectory()) {
if (scanSubDirectories) readDirectory(fullPath);
return;
}
if (!regularExpression.test(fullPath)) return;
files[fullPath] = true;
});
}
readDirectory(path.resolve(__dirname, base));
function Module(file) {
return require(file);
}
Module.keys = () => Object.keys(files);
return Module;
};
}
在我们挂载多个组件和读取多个文件都可以用到它,特别好用