javascript - 如何从 javascript 中读取 mix-manifest.json
问题描述
我使用 laravel-mix 缓存了我的图像。对于刀片中的图像,它可以工作。但是我不知道如何从 javascript 访问该版本化路径。
是否可以mix-manifest.json
从已编译的 javascript 中读取?这样我就可以创建一个 mixin 并获取版本化路径
例如,在我的 mix-manifest.json 我有
"/images/hello.svg": "/images/hello.svg?id=0360de485c68385550da",
我想如果我可以mix-manifest.json
从我编译的 javascript 中读取,我可以创建一个辅助方法,比如
export default {
methods: {
mixPath(path) {
let manifestObj = // read mix-manifest.json
return manifestObj[path];
}
}
}
解决方案
我可以访问 mix-manifest.json
const vm = this;
if (!Vue.prototype.BROWSER_BUILD) {
let path = require("path");
this.manifestPaths = JSON.parse(require('fs').readFileSync(path.resolve('./mix-manifest.json'), 'utf8'));
} else {
axios.get('/mix-manifest.json').then(json => {
vm.manifestPaths = json.data
})
}
和方法:
methods: {
mix(path) {
if (typeof this.manifestPaths[path] == 'undefined') {
return this.manifestPaths[path];
}
return path;
}
}
如果您知道更好的方法,我很高兴知道:)
推荐阅读
- java - 如何在 Java 中对 ConcurrentHashMap 执行原子“获取和清除”?
- django - Django drf请求似乎在花费很长时间时重新启动
- phalcon - 在 Phalcon 中注册所有子命名空间
- sql - 如何为表中列中的每个重复值分配唯一值
- process - 为什么我把它放在C:/Windows/System32/时不能调用子进程?
- parallel-processing - Flink:Jobmanager UI 中设置的并行度与任务槽有什么关系?
- php - PHP:strftime() 与一年中的最后一天
- javascript - 将 JS 中创建的元素移动到 JS 中创建的另一个元素中
- find - 找到 dir xargs rm 输出到 file.log
- python - HTML/CSS 弹出显示列表中的文本