gpt4 book ai didi

angular - 对 Angular 2 应用程序进行版本控制

转载 作者:太空狗 更新时间:2023-10-29 19:31:25 24 4
gpt4 key购买 nike

如何标记 Angular 2 应用程序的版本?

存在一些问题,例如 View (通过 templateUrl)在路由 View (子组件)中没有得到更新。我试过类似的东西

<script>
System.config({
// baseURL: '/',
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('v1/app/boot')
.then(null, console.error.bind(console));
</script>

或者 app/v1/boot 并使用 base 但它不工作。

注意:仅作记录,在开发时,缓存的模板(通过 templateUrl 引入)做的事情非常慢。应该使用隐身 session 或清理浏览器等。我通过在像 export var fileVersion = '?tmplv=' + Date.now(); 这样的模块中引入一个全局变量来解决这个问题,并在像这样的组件中使用它:

@Component({
selector: 'my-component',
templateUrl: '/app/templates/my-component.html' + fileVersion,
})

所以我只需要刷新浏览器就可以看到变化。在生产中使用 fileVersion = ''; 或类似 export var fileVersion = '?tmplv=v3';

最佳答案

我正在处理同样的问题。我正在寻找类似 filerev Node 包的东西。目前,我的解决方案是使用 angular 2 来清除缓存:

首先导入 RuntimeCompiler。

从“@angular/compiler/src/runtime_compiler”导入{RuntimeCompiler};

接下来在您的构造函数中注入(inject) RuntimeCompiler。

构造函数(private _runtimeCompiler: RuntimeCompiler)最后用它来清除缓存。请注意,这会清除所有模板。

this._runtimeCompiler.clearCache();

关于angular - 对 Angular 2 应用程序进行版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34967870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com