require
在React和VUE里,require路徑上無法使用變量(會因找不到上下文環境而查找失敗),可通過require.context()解決。
變量在路徑上,require找不到上下文環境:require("../assets/image/" + 變量 + "/img.jpg")
變量是最后的文件名或部分文件名,上下文環境找的到:require("../assets/image/ipad/" + "變量.jpg")require("../assets/image/ipad/i" + "變量.jpg")require("../assets/image/ipad/img" + "變量.jpg")require("../assets/image/ipad/img.jpg")
解決
require.context()
傳入三個參數分別對應:
- 路徑
- 是否向下級目錄查找
- 正則匹配
const context = require.context("../assets/image/", true, /\.(png|jpg)$/); // 相當於"../assets/image/ipad/img.jpg" context("./ipad/img.jpg");
指定上下文環境后,路徑上可用變量
let type = "ipad"; // "../assets/image/ipad/img.jpg" context("./" + type + "/img.jpg");
