所谓动态图片指的是接口返回的图片地址,这里的地址指的是本地的图片地址,而非网络图片的url。
本地有一个 image 文件夹,存放须要用到的图片。按照接口返回的图片地址比对去加载。
webpack加载图片首先想到的是 file-loader 或者 url-loader
首先安装file-loader
npm install file-loader --save-dev
增长webpack配置,详细文档请参考 file-loaderjavascript
... module: { rules: [ { test: /\.(png|gif|svg|jpg)$/, use: ["file-loader"] } ] } ...
webpack将一切web资源视为模块,其中就包含图片,
webpack支持commonjs,ES6的模块规范,因而咱们能够使用require,以及基于ES6规范的 import() 来加载图片
这两种方式有啥区别呢
咱们能够这样使用java
const lodash = require('lodash')
还有一个 commonjs异步加载 require.ensure 已经被下文的 import()方法 取代了。webpack
从上咱们能够看出 import是异步加载,咱们能够这样使用git
const module = await import('lodash'); // 或者 import('lodash').then((module) =>{ })
require.context
const file = require.context('../../image', false); const keys = file.keys()
keys会返回 image 里面已存在的图片路径的数组,咱们只要判断接口返回的图片地址在本地图片里面再去加载
从而避免模块找不到的问题。github