收藏
回答

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循环来导入模块,然后就出现了这个问题。

回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容