A.js文件module.exports = {a,b,c}
B.js文件const {a} = require('A.js')
这样可以只引入A文件的a模块;
该怎么动态引入模块呢?
伪代码:name = 'b'
const {name} = require(A.js)
name就是b模块的内容,这里的是一个方法片段,name是从外部传来的,不确定是哪一个模块;因为A文件里会有很多模块,不想一次性全部引入再读取部分;
求大大有没有高级的用法,百度查了很多没找到这样的用法.
A.js文件module.exports = {a,b,c}
B.js文件const {a} = require('A.js')
这样可以只引入A文件的a模块;
该怎么动态引入模块呢?
伪代码:name = 'b'
const {name} = require(A.js)
name就是b模块的内容,这里的是一个方法片段,name是从外部传来的,不确定是哪一个模块;因为A文件里会有很多模块,不想一次性全部引入再读取部分;
求大大有没有高级的用法,百度查了很多没找到这样的用法.
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
这不是靠语法能解决的。
你第一个示例可以只引入a是因为打包工具的treeshake技术,分析了你的代码,按需打包。这种分析是静态分析,建立在已经明确了引入的依赖前提上。
“不想一次性加载再读取部分”,这意味着打包工具得把那个模块拆散,每个暴露都拆分成一个js,然后还得有一个runtime来负责运行时根据你传入的变量创建script标签引入该js。
这样的功能依托webpack可以实现,但这种边缘需求估计是没有人去开发插件的