Javascript 对服务工作者进行版本管理

Javascript 对服务工作者进行版本管理,javascript,version,service-worker,Javascript,Version,Service Worker,我的根JS应用程序中有一个version.json文件,其中包含。。。应用程序的当前版本 {version: "2.1.0"} 我在几个地方使用它,我想在我的服务人员中使用它来“版本化”缓存名称(这样,我只需在一个地方为整个应用更改版本号)。类似于 const PRECACHE = 'CACHE-' + version; self.addEventListener('install', event => { event.waitUntil(

我的根JS应用程序中有一个version.json文件,其中包含。。。应用程序的当前版本

{version: "2.1.0"}
我在几个地方使用它,我想在我的服务人员中使用它来“版本化”缓存名称(这样,我只需在一个地方为整个应用更改版本号)。类似于

const PRECACHE = 'CACHE-' + version;

self.addEventListener('install', event => {
    event.waitUntil(
                caches.open(PRECACHE)
                    .then(cache => cache.addAll(PRECACHE_URLS).then(self.skipWaiting()))
);
});
但我不知道如何从我的服务工作者(示例中的版本变量)中的文件中获取JSON数据

我尝试了importScripts方法,但它无法加载JSON文件(抛出错误,告诉我该文件必须返回text/javascript MIME类型)

我怎样才能得到我的版本号

编辑

我找到了一个令人满意的解决方案,但我想知道是否还有其他方法可以达到同样的效果? 我在安装回调中添加了一个获取来检索我的版本,然后使用它来预缓存:

var PRECACHE = 'CACHE-';
        
self.addEventListener('install', event => {
    event.waitUntil(            
            self.fetch('version.json').then(function(strVersion) {
                return strVersion.json();
            }).then(function (jsonVersion) {
                PRECACHE += jsonVersion.version;
                caches.open(PRECACHE)
                    .then(cache => cache.addAll(PRECACHE_URLS).then(self.skipWaiting()))
            })
);
});