У меня было очень простое приложение "hello world" Angular2. Я также сделал явно необоснованное решение работать с разными структурами каталогов между моим проектом dev и конечной папкой развертывания на моем сервере spring.
Из-за этой разницы у меня возникла проблема с импортом TypeScript, и эта строка закончила выпуск 404 ошибок (не удалось найти /angular2/core library), когда я попытался открыть фактическое приложение в своем браузере
import {Component, View} from 'angular2/core';
Короче говоря, я закончил тем, что добавил обратно папку /app, чтобы все работало, но в итоге я изменил свои инструкции импорта следующим образом:
import {Component, View} from '../node_modules/angular2/core';
Это, однако, оказалось причиной какого-то странного поведения. По какой-то причине указание ../node_modules
в путях библиотеки приводит к тому, что JS фактически загружает файлы ALL Angular2 с нуля, используя вызовы ajax для извлечения каждого отдельного файла из папки npm_modules/angular2/
, даже если это было частью моего заголовка HTML
<script src="/node_modules/angular2/bundles/angular2.dev.js"></script>
Когда я наконец понял, что происходит, я вернул оператор импорта обратно в
import {Component, View} from 'angular2/core';
и все это сработало. Angular2 теперь полностью загружен из тега script выше и не было файлов, загружаемых дополнительными вызовами ajax.
Может кто-нибудь объяснить, что это вызывает? Я предполагаю, что это нормальное поведение, но я не понимаю, как работает импорт, и почему указание более подробного пути делает такую разницу.