Проблемы с минимизацией Angular2 с помощью Wro4j

У меня есть небольшое веб-приложение, использующее Spring Boot и Angular 1, Maven и Wro4j, и я хочу попробовать Angular 2, в котором я совершенно новичок.

Я использую Maven/Wro4j 1.8.0 для минимизации во время компиляции и получения одного файла js для угловых зависимостей, который затем использую в заголовке index.html. Хотя это работало с моим приложением angular 1, минификация теперь не работает. Я использую jsMin в качестве процессора. Ошибка при обработке webjar:angular__compiler/2.1.1/bundles/compiler.umd.js.

Покопавшись в доке wro4j, я нашел процессор ngAnnotate, который может быть решением моей проблемы. Но у меня есть еще две проблемы:

  • Я добавил ng-annotate 1.2.1 в свой pom.xml (зависимости wro4j), но он не работает из-за неудовлетворенной транзитивной зависимости от acorn (ng-annotate 1.2.1 pom зависит от acorn [2.6.4,2.7), и есть нет такой версии на Maven Central). Чтобы обойти это, я отредактировал pom ng-annotate, чтобы использовать acorn 2.7.0, что может быть не лучшим решением.
  • После получения моей зависимости в порядке и добавления ngAnnotate в список процессоров (до jsMin) я получаю это сообщение об ошибке:

процессор не поддерживается в этой среде

Вроде пытается запустить ng-annotate и не находит. В документации Wro4j указано, что "Реализация предполагает, что установлен необходимый npm". Я думал (кажется, ошибочно), что добавления веб-банки ng-annotate в pom будет достаточно. Что я пропустил?

Примечание. Мне бы очень хотелось, чтобы Maven управлял всей конфигурацией (Java и Js), которая работала раньше, вместо того, чтобы переключаться на решение с зависимостями js. Я никогда не использовал ни команду npm, ни grunt, ни bower, и до сих пор в ней не было необходимости.


person Steph    schedule 06.11.2016    source источник


Ответы (1)


То, как wro4j работает с ng-annotate, просто выполняет команду ng-annotate в папке проекта.

Так что, вероятно, это связано с тем, что ваша переменная PATH настроена неправильно и не ссылается на папку, содержащую ng-annotate, независимо от того, устанавливаете ли вы ее через webjar или npm.

Например, если вы используете конфигурации Eclipse, вы можете переустановить переменную PATH на вкладке «Среда».

Чтобы определить правильный путь: для webjar выполните поиск, где извлекается исполняемый файл ng-annotate npm. Для NPM откройте терминал, посмотрите, работает ли ng-annotate (его необходимо установить глобально с npm install -g ng-annotate), а затем отобразите переменную env: echo $PATH или путь к исполняемому файлу: which ng-annotate.

У меня была такая же ошибка, и в моем случае у Maven не было ссылки на /usr/local/bin в PATH.

person damien    schedule 14.01.2017
comment
Спасибо за этот ответ. Я полностью отказался от этой темы. Я не знаю, когда у меня будет время попробовать это, но тем временем вы заслуживаете +1 за воскрешение этого поста ^^. - person Steph; 01.02.2017