一般使用的在文件开头使用的import .. from .. 属于标准的静态的引用方式,在文件被加载的时候就被编译,如果需要根据条件判断或者按需引入,就可以使用动态引入的方式import(),import()语句将返回promise,使用then或者async/await 来获取回调
今天在执行的时候根据当前的菜单映射到需要加载的文件路径
import(fileMap(currentId)).then(res => {...})
结果报了错误,couldn't find module...fileMap对应的这个文件路径,直接固定写一个绝对路径是可以导入成功的,本来以为动态导入的意思是根据条件决定是否导入,参数还只能是字符串路径,后来看到官网,https://webpack.docschina.org/api/module-methods/#dynamic-expressions-in-import ,相当于我上面的写法用的就是完全动态,webpack会认为是任意路径,需要加一些路径限制,按照下面的路径改写,就可以正常引入了
import('@/fe/' + fileMap(currentId)).then(res => {...})