npm 引用子项目模块_Java / Web项目中的NPM模块Browser-Sync

npm 引用子项目模块

Browser-Sync是一个方便的基于Node.js的NPM模块,可用于更快的Web开发。 浏览器同步可在许多设备之间同步文件更改和交互。 最重要的功能是实时重新加载。 我们也可以在Java / Web项目中使用Browser-Sync。 Cagatay Civici创造了一个伟大的
视频教程如何在PrimeFaces展示柜中使用此模块。 PrimeFaces展示柜具有内置的Jetty服务器,该服务器将源文件夹src / main / webapp查找为Web上下文根。 通过Node.js软件包管理器NPM安装浏览器同步之后

npm install -g browser-sync

我们必须在http:// localhost:8080 / showcase上启动PrimeFaces展示柜的Jetty服务器。 此外,我们可以将此URL用作Browser-Sync中包含的内置服务器的代理。 Browser-Sync应该侦听src / main / webapp下的更改

browser-sync start --proxy "http://localhost:8080/showcase" --files "src/main/webapp/**/*"

结果,将在带有PrimeFaces展示柜的http:// localhost:3000 / showcase中启动默认浏览器。 端口3000是Browser-Sync的默认端口。

在您对Java文件进行更改之前,这种方法非常有效。 Java文件不是src / main / webapp下的Web资源。 在Maven项目中,它们位于src / main / java下 。 这意味着将无法识别Java文件中的更改。 解决方案是WAR爆炸 。 爆炸的WAR是从中部署Web应用程序的目录。 每个应用程序服务器都可以部署爆炸的WAR。 对于Maven项目,该目录通常为target / webapp 。 Maven WAR插件的目标是war:也爆炸了。 如果您有IDE,则可以将Web应用程序配置为爆炸式WAR。 几年前,我已经用IntelliJ IDEA发表了有关热部署的博客。 在IntelliJ中,您可以将更改的文件(CSS,JS,HTML资源和已编译的Java文件)自动复制到爆炸的WAR的目录中。

运行配置

现在,如果您手动刷新浏览器,您还将看到Java类中的更改。 但是我们希望做得更好。 我们要使用广受赞誉的实时重新加载! 为了实现此目标,请设置要监视的文件,如下所示

browser-sync start --proxy "http://localhost:8080/showcase" --files "target/classes/**/*.class, target/webapp/**/*"

输出看起来像

[BS] Proxying: http://localhost:8080
[BS] Access URLs:---------------------------------------------------------------------Local: http://localhost:3000/showcaseExternal: http://192.168.178.27:3000/showcase---------------------------------------------------------------------UI: http://localhost:3001UI External: http://192.168.178.27:3001---------------------------------------------------------------------

现在,我可以对所有重要文件进行任何更改,并在控制台中看到类似的内容

[BS] Watching files...
[BS] File changed: target\webapp\META-INF\MANIFEST.MF
[BS] File changed: target\webapp\WEB-INF\classes\some\showcase\bean\SomeBean.class
[BS] File changed: target\webapp\views\someView.xhtml
[BS] File changed: target\webapp\META-INF\MANIFEST.MF

浏览器页面由Browser-Sync自动更新(顺便使用WebSocket)。 如果您的IDE遇到问题,可以使用Gulp进行救援! 这是我对gulpfile.js的想法(Gulp 4)。

var browsersync = require('browser-sync').create();// init Browser-Sync
gulp.task('browser-sync', function() {browsersync.init({proxy: "http://localhost:8080/my-showcase"});
});// compile changed Java files by Maven "mvn compile"
// compiled classes will be transfered to target/classes automatically
gulp.task('java', function () {// use 'spawn' to execute command using Node.jsvar spawn = require('child_process').spawn;// set the working directory to project root where gulpfile.js existsprocess.chdir(__dirname);// run "mvn compile"var child = spawn('mvn', ['compile']);// print outputchild.stdout.on('data', function(data) {if (data) {console.log(data.toString());}});
});// copy changes from src/main/webapp to target/webapp 
gulp.task('webapp', function () {return gulp.src('src/main/webapp/**/*', since: {gulp.lastRun('webapp')}).pipe(gulp.dest('target/webapp'));
});// watch files for changes
gulp.task('watch', function () {gulp.watch('src/main/java/**/*.java', ['java']);gulp.watch('src/main/webapp/**/*', ['webapp']);gulp.watch(['target/classes/**/*.class', 'target/webapp/**/*'], browsersync.reload);
});// default task
gulp.task('default', gulp.series('browser-sync', 'watch'));

该文件应放在项目根文件夹中。 现在,您可以执行命令了(当然应该安装Gulp了)

gulp

并享受现场重装! 请考虑Gulp java任务。 Maven仅编译更改的文件。 它运作非常快! 如果没有更改,则没有任何内容可以编译-mvn compile的输出如下所示:

[INFO] Nothing to compile - all classes are up to date

如果我们在一个Java文件中进行更改,则输出如下所示:

[INFO] Compiling 1 source file to <path>\showcase\target\classes

我还可以想象一些复杂的Gulp任务,例如在相关的JAR文件中编译Java类,构建JAR并将其复制到爆炸的WAR的WEB-INF / lib文件夹中。

翻译自: https://www.javacodegeeks.com/2016/05/npm-module-browser-sync-java-web-projects.html

npm 引用子项目模块

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335687.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xrd精修教程_XRD精修系列干货 | 带你领略晶体之美

1. XRD精修教程(一)——XRD精修基本原理与GSAS软件简介(附GSAS软件下载链接)点击上图即可查看全文X射线衍射分析(XRD)在研究材料的相结构、相成分等多个方面有广泛的应用&#xff0c;但最常用的多晶衍射法有个缺点&#xff1a;得到的谱峰重叠严重&#xff0c;从而造成大量材料结…

多个cpp文件生成so_C++:C++的文件搜索路径

在做大型工程的时候&#xff0c;除了有C语法知识之外&#xff0c;还要有工程能力。最先要具备的能力是&#xff1a;理解C文件的编译&#xff0c;链接过程。明白C头文件的搜索路径。本文&#xff0c;介绍C的文件搜索路径。对于C文件来说&#xff0c;主要有两种&#xff0c;一种是…

HH SaaS电商系统的店铺系统设计

文章目录为什么店铺运营模式要区分B2C、C2C、O2O&#xff1f;O2O店铺B2C店铺自营B2C店铺第三方B2C店铺C2C店铺为什么O2O店铺不允许售卖快递类的商品&#xff1f;B2C、C2C模式的自提和O2O的自提有什么区别&#xff1f;B2C、C2C模式的配送和O2O的配送有什么区别&#xff1f;为什么…

监听js变量的变化_JS监听事件型爬虫

点击上方“Python数据科学”&#xff0c;选择“星标公众号”关键时刻&#xff0c;第一时间送达&#xff01;作者&#xff1a;zuobangbang来源&#xff1a;zuobangbang最近开始研究网页参数的JS加密&#xff0c;但是大型网站的JS文件过于繁杂&#xff0c;不适合新手上路&#xf…

HH SaaS电商系统的支付模块设计

文章目录支付单支付单状态流转逻辑说明支付相关实体支付流水记录支付方式支付渠道支付单 销售订单生成时&#xff0c;同步生成支付单&#xff0c;如果销售订单的应付金额由首付款和尾款组成&#xff0c;那么会生成两个支付单 支付单与销售订单的“联合单号”或者“退款单ID”关…

添加几个手机联系人_One UI 3.0: 更细腻、更好用,这才是手机系统该有的样子

作为全球出货量最多的 Android 手机厂商&#xff0c;三星宣布将于北京时间 1 月 14 日正式召开 2021 年度的新品发布会。伴随着 S21 的即将发售&#xff0c;我想借此机会和大家一起来聊一聊前不久刚刚推送正式版本的 One UI 3.0。One UI 3.0 是三星基于 Android 11.0 打造的新一…

HH SaaS电商系统的商城模块设计

文章目录好获SaaS电商系统层级关系商城实体商城运营模式商城可选子系统创建商城商城管理后台有供应系统和无供应系统的B2C和混合模式的商城系统对比有仓储系统和无仓储系统的B2C和混合模式的商城系统对比有店铺系统和没有店铺系统的商城系统对比商城关闭商家入驻通道B2C模式商城…

HH SaaS电商系统的物流单设计

业务说明 物流信息提交后&#xff0c;系统生成物流单&#xff0c;出库单与物流单是一对多的关系 退货时买家填写物流信息&#xff0c;提交后系统生成物流单和入库单&#xff0c;物流单需要保存入库单的id 物流单实体

pcl_openmap_OpenMap教程5 – 3层GIS应用程序

pcl_openmap1.简介 欢迎使用OpenMap系列教程的第5个教程。 OpenMap是一个免费的开源Java GIS库。 这是以前的教程列表&#xff1a; 在第一个教程中&#xff0c;我们创建了一个基本的OpenMap GIS应用程序&#xff0c;该应用程序在JFrame中显示一个从文件系统加载的具有一个形状…

HH SaaS电商系统的商品系统设计

文章目录商品信息结构商品信息总结构商品信息结构图发布商品商品类型虚拟商品服务商品为什么服务商品要分类前端根据服务商品类型来设计不同的界面和交互订单状态和服务类型有关商品档案上下架运营商品上下架&#xff08;即商品营销上下架&#xff09;删除商品租户删除自供商品…

HH SaaS电商系统移动端商城,买家选择商品规格的交互设计

文章目录未完整选择商品规格时商品图如何显示库存如何显示价格如何显示选择规格提示文案如何显示原型图已选完整选择商品规格时商品图如何显示库存如何显示价格如何显示原型图SKU下架后如何显示原型图购买数量如何交互未完整选择商品规格时 商品图如何显示 显示SPU的主图&…

aws lambda_适用于无服务器Java开发人员的AWS Lambda:它为您提供了什么?

aws lambda无服务器计算如何帮助您的生产基础架构&#xff1f; 在过去的几年中&#xff0c;无服务器计算架构一直受到关注&#xff0c;因为它专注于应用程序的主要组件之一&#xff1a;服务器。 这种体系结构采用了不同的方法。 在下面的文章中&#xff0c;我们将解释无服务器…

HH SaaS电商系统的销售订单毛利润模块设计

HH SaaS电商系统的销售订单利润分析&#xff0c;仅是简单分析供运营人员参考而已&#xff0c;所以订单生成后就自动根据商品成本价和实际交易价生成利润表&#xff0c;而不需要等到订单归档后才生成。 销售子单的毛利润最终交易总额-成本总额销售子单的毛利率毛利润/最终交易总…

eclipse preference没有server_Java Web开发的前期准备工作,部署Tomcat服务器和Server环境创建...

Java Web: 顾名思义&#xff0c;就是用Java的方式来解决Web开发&#xff0c;我也不讲太多的理论问题&#xff0c;直接将如何上手来进行Java Web开发。那么&#xff0c;我们一般进行Java Web开发&#xff0c;可以使用的工具很多&#xff0c;我这里使用eclipse。选择eclipse的版本…

java int不将0忽略_Java微服务:蛋糕是骗人的,但您不能忽略它

java int不将0忽略构建微服务实际上意味着什么&#xff1f; 通过微服务框架的眼光回答 忽略微服务的趋势已变得不可能。 有些人会说这只是另一个难以忍受的流行语&#xff0c;而另一些人会背诵打破巨石的优势或采取逆势方法并关注负面因素。 在本文中&#xff0c;我们将全面了…

4怎么放大字体_Word字体怎么放大?简单教你几招轻松搞定

一般情况下我们都会选择用Word编辑文章。文章编辑完成之后我们通常会对文章进行排版。在排版的过程中如果我们需要将Word字体放大该怎么办呢&#xff1f;下面我就来教大家几个Word字体放大的小技巧&#xff0c;一起来看看吧。下面以放大“字体演示”为例为大家演示操作过程。一…

js splice坑_JavaScript的splice()方法在for循环中使用可能会遇到的坑!!!

在我们日常敲代码的时候&#xff0c;常常会用到splice()方法来删除数组中的元素(就是以截取的方式)&#xff0c;因为它会直接对数组进行修改。在使用splice之前&#xff0c;必备条件是&#xff0c;要先有一个数组。var arr new Array(1,2,3,4,5); // 初始化一个数组var delete…

wps如何将字体竖着排列_WPS文字中怎么竖着打字?wps文字竖排的设置方法介绍

wps中怎么样才能让文字竖着写啊&#xff1f;WPS现在的应用比较多&#xff0c;其实WPS文字和Word相差不过&#xff0c;都是一个办公软件&#xff0c;我们有时候在编辑的时候需要把文字竖排&#xff0c;那么&#xff0c;wps文字怎么竖排呢&#xff1f;接下来脚本之家小编就给大家…

HH SaaS电商系统的线上服务商品库存和采购设计

文章目录线上服务商品库存和采购整体思路线上服务商品的采购单状态线上服务商品的出库单状态商家完成服务线上服务商品库存和采购整体思路 线上服务商品直接在商品编辑页面编辑库存数量即可&#xff0c;服务端自动生成类型为“调整入库”的入库单和类型为“调整出库”的出库单…

arm linux gif 显示_100ASK_IMX6ULL arm板子如何显示图片、汉字、划线、背景色

最近在研究基于imx6ull开发板&#xff0c;想让开发板支持显示图片、字符串、背景色的功能。 操作的主要步骤如下&#xff1a;移植设备树和驱动移植libjpeg库编写测试程序一、移植设备树和驱动开发板原厂SDK已经移植了lcd对应的设备树和驱动。具体可以参考韦东山老师的文章https…