代码如下:
const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('./svg', false, /\.svg$/)
requireAll(req)
keys方法返回的是一个Array Iterator,map方法里面的参数应该是一个函数才对,这两个结合在一起好难理解是干嘛的
代码如下:
const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('./svg', false, /\.svg$/)
requireAll(req)
keys方法返回的是一个Array Iterator,map方法里面的参数应该是一个函数才对,这两个结合在一起好难理解是干嘛的
require.context('./svg', false, /.svg$/)
的返回值就是一个函数--类似require()
的函数,这个函数有个keys
方法,该方法的返回值是一个数组--要引入的模块的文件名数组,这个数组调用map
方法,实参requireContext
就是上面说的类require()
的函数,所以map
操作就是逐项引入模块.
我拆分写给你看 应该就清晰了
const requireAll = requireContext => {
requireContext.keys().map(requireContext)
}
第一段其实是这样的,只不过简写了,其中keys()
的意思就是 整理requireContext
不管这个是Object
还是Array
都把key
值整理出来变成一个数组,在通过map
去循环。
第二段就没什么好解析了。。就是获取函数返回的值
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
这个是
webpack
提供的require
方法,可以创建上下文环境。相当于将svg
目录下的svg
文件require
进来。https://webpack.js.org/guides...