require导入模块时使用变量为什么会报错?
require 同样的路径,用字符串就可以正常导入,换成变量就会报错 let html = require("../data/html5/HTML.js"); //这样导入没有问题
const list = {
HTML: "../data/html5/HTML.js"
}
let html = require(list.HTML); //这样就会报 Error: module "pages/data/html5/HTML.js" is not defined
模块的路径肯定是没错的,因为本质上用的是同一个路径 我知道require里面写变量会警告 the request of a dependency is an expression ,用字符串拼接变量就可以消除 下面是报错的模块完整代码: const list = {
javaScript:"../data/javaScriptData/javaScript.js",
css:"../data/css.js",
HTML:"../data/html5/HTML.js",
}
//let html = require(list.HTML); 调试代码
// let html = require("../data/html5/HTML.js"); 调试代码
const data = {
//html, 调试代码
};
for(let prop in list){
data[prop] = require(list[prop]);//原始报错位置
}
module.exports = data;
因为list里面保存了很多模块地址,贴过来的代码我删了好多,所以我要用for in循环来导入模块,然后就出现了这个问题。