Jhipster maven(在dev概要文件下运行)如何在index.html中包含javascript文件?
从2.0版开始,我就没有使用过jhipster,目前我正在追赶4.0.6版。 当我试图通过命令行中的“/mvnw”(使用默认的devmaven配置文件)构建初始应用程序时,应用程序javascript文件不会添加到index.html中(因此,当我尝试时,浏览器中的页面会显示为空白)。 有人能给我解释一下通常导致maven(使用dev配置文件运行)将应用程序javascript文件包含到index.html中的正常事件链吗? 事先非常感谢您的帮助。 顺致敬意,Jhipster maven(在dev概要文件下运行)如何在index.html中包含javascript文件?,jhipster,Jhipster,从2.0版开始,我就没有使用过jhipster,目前我正在追赶4.0.6版。 当我试图通过命令行中的“/mvnw”(使用默认的devmaven配置文件)构建初始应用程序时,应用程序javascript文件不会添加到index.html中(因此,当我尝试时,浏览器中的页面会显示为空白)。 有人能给我解释一下通常导致maven(使用dev配置文件运行)将应用程序javascript文件包含到index.html中的正常事件链吗? 事先非常感谢您的帮助。 顺致敬意, kbjp我们的工作流程如下,纱线或
kbjp我们的工作流程如下,纱线或npm将根据选择使用
package.json中的postInstall
脚本在warn install
之后触发,此步骤调用webpack:build
任务
target
或build
文件夹内的www
文件夹中,该文件夹基于所选的构建工具mvnw
或gradlew
将启动后端,并应可在localhost:8080上使用。这也应服务于根据上述步骤编译的前端webpack:build:dev
,或者让warn start
使用实时重新加载运行您还可以通过传递
webpack
配置文件(如mvnw-Pdev,webpack
)来强制maven在启动时运行webpack任务,尽管我使用的是gradle,但我刚刚遇到了这个问题。也为我解决了一切。为了强制gradle在清理后运行webpackBuildDev
任务(构建丢失的www目录),我添加了以下内容:
processResources {
doLast {
if (!new File("$buildDir/www").exists()) webpackBuildDev.exec()
}
}
大概这与前端maven插件实现了相同的功能。构建web资产(图像、html、typescript等)的单个命令是
纱线网页包:构建
此命令将把web资产放在需要的位置,即
build/www
Deppu的回答很好地涵盖了主要的概念方面。我想在Maven遇到类似问题的基础上再加上我的两分钱。我们知道默认的首选JHipster样式是使用两个端子,一个带有./mvnw,另一个带有纱线起始的端子
然而,在我们的项目中,我们有时只关注一些后端工作,并在单个终端中运行./mvnw,希望前端始终在那里使用。尽管出于任何原因(eclipse或maven clean steps等),前端构建的人工制品可能并不总是出现在/target/www中
因此,为了确保在单终端中运行./mvnw并始终构建前端,我更新了maven-dev配置文件,如下所示。基本上添加了调用Thread install的前端构建插件(该插件在不运行dev server的情况下作为脚本的一部分临时运行Thread run webpack:build步骤)和测试。这对我有用
<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>
发展
真的
org.springframework.boot
弹簧靴起动器下拖
org.springframework.boot
弹簧靴开发工具
真的
org.apache.maven.plugins
maven战争插件
src/main/webapp/
com.github.eirslett
前端maven插件
${frontend maven plugin.version}
安装节点和纱线
安装节点和纱线
${node.version}
${warn.version}
纱线安装
纱线
安装
网页包构建测试
纱线
测试
运行网页包:测试
调试
dev${profile.no liquibase}
如果是angular 2,您还必须使用纱线开始运行webpack,请参阅。纱线构建由maven在使用prod Profile时运行伟大的答案Deepu,可能在docHi Deepu中…你搞定了!完全正确在最初的项目生成之后,我进行了一次“mvn干净安装”。话虽如此,为什么前端maven插件(“webpack build dev”)不是开发人员配置文件的一部分?我不确定是否有其他开发人员,但通常在我构建项目时,我会执行“mvn清理安装”(清除目标文件夹),而不仅仅是“mvn安装”。您是在哪里编写此代码的?你能再解释一下吗?这是最高级别的build.gradle。当且仅当www
目录不存在时,它更新processResources
任务(发生在编译/打包之前)以运行webpackBuildDev
任务。从本质上说,“如果网页从来没有被构建过,那么就构建一次”。