Управление версиями приложения 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();

Другие вопросы по тегам