我想从requirejs迁移到SystemJS,但是我找不到像requirejs那样用于模块版本控制的解决方案。
例如在生产中(ASP.Net网站),我将RequireJS设置如下:

require.config({
            baseUrl: "@Url.Content("~/Scripts/")",
            urlArgs: "buildNumber=@(File.GetLastWriteTime(ViewContext.Controller.GetType().Assembly.Location).ToBinary().ToString() + typeof(Foundation.MvcApplication).Assembly.GetName().Version)",
            ...
});

它保证一旦在生产环境中重新发布项目,文件将被重新加载,并保持这种方式直到重新加载。

但是,我没有找到针对SystemJS的任何解决方案(由于SystemJS管理更多类型的模块,因此我想迁移到它)。

有没有人在生产中使用SystemJS并遇到相同的问题,您知道SystemJS中的“urlArgs”参数(或插件)吗?

最佳答案

长话短说:githubt上SystemJS上有关于cache bust的问题。但是事情还没有正式实现。目前,有一个自定义钩子(Hook),可以轻松添加

var buildNumber = 1234, // made your own build number
    systemLocate = System.locate;
System.locate = function(load) {
  return Promise.resolve(systemLocate.call(this, load)).then(function(address) {
    return address + '?build='+buildNumber;
  });
}

编辑修正拼写错误

关于caching - 用于生产和缓存管理的SystemJS版本控制(requirejs urlArgs替代),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35404460/

10-12 23:43