Управление версиями приложения Angular 2
Как можно пометить версии приложения Angular 2?
Есть некоторые проблемы, такие как взгляды (через templateUrl
) не обновляются в представлениях маршрута (дочерние компоненты). Я пробовал такие вещи, как
<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
) делаю досадно медленные вещи. Нужно использовать сеансы инкогнито или очистить браузер и тому подобное. Я решил это, введя глобальную переменную в модуле, как export var fileVersion = '?tmplv=' + Date.now();
и использовать его в таких компонентах, как:
@Component({
selector: 'my-component',
templateUrl: '/app/templates/my-component.html' + fileVersion,
})
Так что я должен просто обновить браузер, чтобы увидеть изменения. В производстве используется либо fileVersion = '';
или как export var fileVersion = '?tmplv=v3';
,
1 ответ
Я имею дело с той же проблемой. Я ищу что-то вроде filerev Node package. На данный момент мое решение состоит в том, чтобы использовать angular 2 для очистки кэша:
Сначала импортируйте RuntimeCompiler.
import { RuntimeCompiler} from '@angular/compiler/src/runtime_compiler';
Затем добавьте RuntimeCompiler в ваш конструктор.
constructor(private _runtimeCompiler: RuntimeCompiler)
Наконец, используйте это, чтобы очистить кеш. Обратите внимание, что это очищает все шаблоны.
this._runtimeCompiler.clearCache();