比如我现在想要造一个自己的工具库utils,那么随着工具函数数量的增加,势必需要将代码分割得更小,甚至细化到一个工具函数对应一个js文件。
这时如果还需要在入口js文件中一个个手动引用,那么每增加一个js文件,就需要重新去修改入口js一次,工程量是非常大的。
let moduleExports = {};
const r = require.context('./', true, /^\.\/.+\/.+\.js$/);
r.keys().forEach(key => {
let attr = key.substring(key.lastIndexOf('/') + 1, key.lastIndexOf('.'));
moduleExports[attr] = r(key);
});
module.exports = moduleExports;
例如 require.context("@/views/components",false,/.vue$/)
1、常常用来在组件内引入多个组件。
const path = require('path')
const files = require.contex
大家在写vue路由的时候,一般会采取什么样的方法呢?在router的index.js中直接把路由写完,还是把每个页面抽出来再到router的index.js里引入?
两种好像都停麻烦,第一种页面多了都聚合在一个js文件里,不利于管理。第二种虽然抽离了每个页面的路由,但是每个都要在router中import,页面多了,就会麻烦。
node.js里面的一种方法可以很好应用在路由以及其他加载模块的需求上,require.context()
这是我的路由文件结构
初识 require.context
require.context是webpack中,用来创建自己的(模块)上下文
webpack会在构建的时候解析代码中的require.context()
require.context函数接收三个参数:
1. 要搜索的文件夹目录
2. 是否还应该搜索它的子目录
3. 以及一个匹配文件的正则表达式
// 语法
require.context(directory, useSubdirectories = false, regExp = /^
简化文件中需要多个 import/require 的情况,该方法可以引入多个文件,并整理成数组。
require.context(directory, useSubdirectories, regExp)
directory: 要查找的文件路径
useSubdirectories: 是否查找子目录
regExp: 要匹配文件的正则
这是文件结构,公司常用的vue项目vuex封装
我们在外部的index.js中使用如下函数
const files = require.context(".
require.context:
一个webpack的api,通过执行require.context函数获取一个特定的上下文,主要用来实现自动化导入模块,在前端工程中,如果遇到从一个文件夹引入很多模块的情况,可以使用这个api,它会遍历文件夹中的指定文件,然后自动导入,使得不需要每次显式的调用import导入模块。
require.context(directory, useSubdirect...
import os
from common.excel_handler import excel_handler
from common.request_handler import requests_handler
from config import config
#准备数据驱动
@ddt.ddt
class Test_demo(unittest.TestC