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循环来导入模块,然后就出现了这个问题。
神奇的报错录屏视频,刚改成变量的时候不报错,挺好。但凡再敢动一下,哪怕加个空格,再刷新就报错了。非常的神奇(画质有些模糊,不过重要的是看效果,源码下面有链接)
视频链接:https://photovideo.photo.qq.com/1074_0b53gprbgtiafeac6jjudvrdemyecocaazsa.f20.mp4?dis_k=c33bb8a7b3a2bf76d4f6c070f852d2c8&dis_t=1647702664&vuin=1306686903
项目完整代码: https://developers.weixin.qq.com/s/hPxeqPmN7exF