我从2.0版开始就没有使用过jhipster,我现在正在追赶版本#4.0.6。 当我尝试通过" ./ mvnw"来构建初始应用程序时(在命令行中使用默认的 dev maven配置文件),应用程序javascript文件不会添加到index.html(因此当我尝试http://localhost:8080时,我的浏览器中的页面会显示为空白) 。 有人可以向我解释一下正常的事件链,这些事件通常会导致maven(使用 dev 配置文件)将应用程序javascript文件包含到index.html中吗? 非常感谢您的帮助。 最好的祝福 kbjp
答案 0 :(得分:10)
我们的工作流程如下,纱线或npm将根据选择使用
yarn install
任务postInstall
中的package.json
脚本在yarn install
之后触发,此步骤调用webpack:build
任务www
或target
文件夹中的build
文件夹中mvnw
或gradlew
将启动后端,并且应该可以在localhost:8080处获得,这也应该服务于从上面步骤编译的前端webpack:build:dev
或使用实时重新加载yarn start
要么您没有让postInstall脚本运行,要么您删除了目标文件夹
您也可以通过传递webpack
个人资料(例如mvnw -Pdev,webpack
答案 1 :(得分:1)
我刚遇到这个问题,虽然我正在使用gradle。 Deepu's answer也为我解决了一切。为了强制gradle在干净之后运行webpackBuildDev
任务(构建缺少的www目录),我已经添加了这个:
processResources {
doLast {
if (!new File("$buildDir/www").exists()) webpackBuildDev.exec()
}
}
据推测,这可以实现与前端-maven-plugin相同的功能。
答案 2 :(得分:0)
构建Web资产的单个命令(图像,html,打字稿等)是
type DeepPick<T, S extends DeepSelect<T>> = {[K in keyof S]: S[K] extends DeepSelect<infer U> ? DeepPick<T[K], U> : T[K]}
此命令会将网络资源放在需要的位置,即yarn webpack:build
答案 3 :(得分:0)
Deppu的答案很好地涵盖了主要的概念方面。我想基于碰到类似Maven的类似问题而增加我的两分钱。我们知道默认的首选JHipster样式是使用两个终端,一个使用./mvnw,一个使用yarn start。
但是,在我们的项目中,有时我们只专注于某些后端工作,并在单个终端中运行./mvnw,并希望前端始终在那里使用。尽管出于某种原因(日食或Maven清洁步骤等),前端的人工制品可能始终不会出现在/ target / www中。
因此,为了确保何时在单个终端中运行./mvnw并始终构建前端,我按如下所示更新了maven dev 配置文件。基本上添加了调用yarn install的前端构建插件(此脚本已经在不运行dev服务器的情况下作为脚本的一部分传递了yarn run webpack:build步骤)和test。这对我有用。
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceDirectory>src/main/webapp/</warSourceDirectory>
</configuration>
</plugin>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>${frontend-maven-plugin.version}</version>
<executions>
<execution>
<id>install node and yarn</id>
<goals>
<goal>install-node-and-yarn</goal>
</goals>
<configuration>
<nodeVersion>${node.version}</nodeVersion>
<yarnVersion>${yarn.version}</yarnVersion>
</configuration>
</execution>
<execution>
<id>yarn install</id>
<goals>
<goal>yarn</goal>
</goals>
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<execution>
<id>webpack build test</id>
<goals>
<goal>yarn</goal>
</goals>
<phase>test</phase>
<configuration>
<arguments>run webpack:test</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<!-- log configuration -->
<logback.loglevel>DEBUG</logback.loglevel>
<!-- default Spring profiles -->
<spring.profiles.active>dev${profile.no-liquibase}</spring.profiles.active>
</properties>
</profile>