Обновление: ошибка
Я подал Билет № 6,629 . Определено, что должна быть ошибка, с некоторыми объясненными деталями.
Я оставляю этот Вопрос открытым, если у кого-то есть обходной путь.
tl; dr
Некоторая часть процесса сборки Vaadin 14, управляемой Maven, игнорирует параметр <build><directory>
в моем файле POM Maven, что-то связанное с:
target
frontend
generated-flow-imports.js
package.json
Возможно, мне следует подать отчет об ошибке. Или есть решение / обходной путь?
Подробнее
Я использую Vaadin 14.0.7 или 14.1.0alpha2 для создания некоторых веб-приложений. Я хотел бы использовать ramdisk (он же RAM-диск) , чтобы ускорить процесс сборки, а также чтобы избежать износа моего флэш-накопителя.
С помощью этого Вопроса я могу смонтировать 1-гигабайтный виртуальный диск на MacOS Mojave на Mac mini.
diskutil partitionDisk $(hdiutil attach -nomount ram://2097152) 1 GPTFormat APFS 'RamDisk' '100%'
С этим Ответом , Я отредактировал мой POM-файл Maven, чтобы IntelliJ собирал с помощью папки target
на виртуальном диске.
- К элементу
<properties>
добавить:<buildDirectory>/Volumes/RamDisk/target</buildDirectory>
- К элементу
<build>
добавить:
<directory>${buildDirectory}</directory>
После запуска Maven install
я вижу, что сборка там прошла успешно со всеми ожидаемыми папками и файлом WAR.
Проблема возникает, когда я пытался запустить свой проект из IntelliJ, используя сервер Jetty в комплекте с IntelliJ, запустив из панели Maven элемент jetty:run
. Я увидел большую часть ожидаемого результата в панели Run
IntelliJ. Но после большинства строк webpack
я получил ошибку Frontend compilation failed
:
[webpack] INFO dev-webpack - build/webcomponentsjs/webcomponents-loader.js 6.13 KiB [emitted]
[webpack] INFO dev-webpack -
[webpack] ERROR dev-webpack - ERROR in Entry module not found: Error: Can't resolve '/Volumes/RamDisk/target/frontend/generated-flow-imports.js' in '/Users/basilbourque/IdeaProjects/ticktock/frontend'
[webpack] ERROR dev-webpack -
[webpack] ERROR dev-webpack - ERROR in Entry module not found: Error: Can't resolve '/Volumes/RamDisk/target/frontend/generated-flow-imports.js' in '/Users/basilbourque/IdeaProjects/ticktock/frontend'
[webpack] ERROR dev-webpack - ℹ 「wdm」: Failed to compile.
[webpack] ERROR dev-webpack -
------------------ Frontend compilation failed. -----------------
Папка /Volumes/RamDisk/target/frontend/
действительно существует на виртуальном диске . Но файл generated-flow-imports.js
не найден в.
Веб-приложение Vaadin действительно может работать на сервере. Когда я указываю свой веб-браузер на это веб-приложение, я вижу ожидаемую веб-страницу, которая в основном покрыта длинным сообщением об ошибке в поле с красным текстом, все о «ошибке Webpack».
Наramdisk, в папке target
создается папка с именем frontend
. Он содержит только один файл, package.json
.
Снимок экрана виртуального диска:
">
Появляется большая часть ожидаемого материалана виртуальном диске в папке target
. Но на флеш-накопителе создается папка target
, в которую вложена папка frontend
с парой файлов: generated-flow-imports.js
& package.json
. есть некоторая часть сборки проекта Vaadin, которая игнорирует настройку <build><directory>
в моем файле Maven POM.
Снимок экрана флэш-памяти:

Если я вернусь в POM, чтобы закомментировать мой
<directory>${buildDirectory}</directory>
, все снова хорошо, я могу запустить мое веб-приложение Vaadin через прилагаемую Jetty без какого-либо "внешнего интерфейса" или "webpack "ошибки.
➥ Что я могу сделать, чтобы фронтенд-компиляция работала с моим виртуальным диском?