{"id":56340,"date":"2016-05-16T16:00:15","date_gmt":"2016-05-16T13:00:15","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=56340"},"modified":"2016-05-17T21:53:16","modified_gmt":"2016-05-17T18:53:16","slug":"npm-module-browser-sync-java-web-projects","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html","title":{"rendered":"NPM module Browser-Sync in Java \/ Web projects"},"content":{"rendered":"<p><a href=\"https:\/\/www.browsersync.io\/\">Browser-Sync<\/a> is a handy Node.js based NPM module which can be used for a faster web development. Browser-Sync synchronizes file changes and interactions across many devices. The most important feature is the live reloading. We can use the Browser-Sync in Java \/ Web projects too. Cagatay Civici created a great<br \/>\n<a href=\"http:\/\/blog.primefaces.org\/?p=3912\">video tutorial<\/a> how to use this module with the\u00a0<a href=\"http:\/\/www.primefaces.org\/showcase\/\">PrimeFaces showcase<\/a>. The PrimeFaces showcase has a built-in Jetty server which looks to the source folder\u00a0<strong>src\/main\/webapp<\/strong> as the web context root. After the Browser-Sync installation via the Node.js package manager NPM<\/p>\n<pre class=\"brush:java\">\u00a0\r\nnpm install -g browser-sync\r\n<\/pre>\n<p>we have to start the Jetty server for the PrimeFaces showcase at\u00a0<strong>http:\/\/localhost:8080\/showcase<\/strong>. Afther that we can use this URL as proxy for a built-in server included in the Browser-Sync. The Browser-Sync should listen to changes under\u00a0<strong>src\/main\/webapp<\/strong><\/p>\n<pre class=\"brush:java\">\u00a0\r\nbrowser-sync start --proxy \"http:\/\/localhost:8080\/showcase\" --files \"src\/main\/webapp\/**\/*\"\r\n<\/pre>\n<p>As result, a default browser will be started at\u00a0<strong>http:\/\/localhost:3000\/showcase<\/strong> with the PrimeFaces showcase. The port\u00a0<strong>3000<\/strong> is the default port for the Browser-Sync.<\/p>\n<p>This approach works well until you have made changes in Java files. Java files are not web resources under\u00a0<strong>src\/main\/webapp<\/strong>. In Maven projects they located under\u00a0<strong>src\/main\/java<\/strong>. That means, changes in Java files will not be recognized. The solution is\u00a0<strong>exploded WAR<\/strong>. An exploded WAR is a directory where the web application gets deployed from. Every application server can deploy an exploded WAR. For Maven projects, this directory is normally\u00a0<strong>target\/webapp<\/strong>. The\u00a0<a href=\"https:\/\/maven.apache.org\/plugins\/maven-war-plugin\/exploded-mojo.html\">Maven WAR plugin<\/a> has the goal\u00a0<strong>war:exploded<\/strong> too. If you have an IDE, you can configure your web application as an exploded WAR. I have blogged about\u00a0<a href=\"https:\/\/www.javacodegeeks.com\/2013\/10\/hot-deployment-with-intellij-idea.html\">Hot Deployment with IntelliJ IDEA<\/a> a couple of years ago. In IntelliJ, you can automatically copy changed files (CSS, JS, HTML resources and compiled Java files) to the directory for the exploded WAR.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/05\/run-config.png\"><img decoding=\"async\" class=\"aligncenter wp-image-56349\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/05\/run-config.png\" alt=\"run-config\" width=\"860\" height=\"490\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/05\/run-config.png 1004w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/05\/run-config-300x171.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/05\/run-config-768x438.png 768w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p>Now, if you refresh the browser manually, you will see the changes in Java classes too. But we want to do this better. We want to use the highly praised live reloading! To achieve this goal, set files to be watched as follows<\/p>\n<pre class=\"brush:java\">\u00a0\r\nbrowser-sync start --proxy \"http:\/\/localhost:8080\/showcase\" --files \"target\/classes\/**\/*.class, target\/webapp\/**\/*\"\r\n<\/pre>\n<p>The output looks like<\/p>\n<pre class=\"brush:java\">[BS] Proxying: http:\/\/localhost:8080\r\n[BS] Access URLs:\r\n ---------------------------------------------------------------------\r\n       Local: http:\/\/localhost:3000\/showcase\r\n    External: http:\/\/192.168.178.27:3000\/showcase\r\n ---------------------------------------------------------------------\r\n          UI: http:\/\/localhost:3001\r\n UI External: http:\/\/192.168.178.27:3001\r\n ---------------------------------------------------------------------<\/pre>\n<p>Now, I can do any changes in all important files and see something like in the console<\/p>\n<pre class=\"brush:java\">[BS] Watching files...\r\n[BS] File changed: target\\webapp\\META-INF\\MANIFEST.MF\r\n[BS] File changed: target\\webapp\\WEB-INF\\classes\\some\\showcase\\bean\\SomeBean.class\r\n[BS] File changed: target\\webapp\\views\\someView.xhtml\r\n[BS] File changed: target\\webapp\\META-INF\\MANIFEST.MF<\/pre>\n<p>The browser page gets updated by the Browser-Sync automatically (which uses WebSockets by the way). If you have trouble with your IDE, you can use\u00a0<a href=\"http:\/\/gulpjs.com\/\">Gulp<\/a> to rescue! Here my idea for a\u00a0<strong>gulpfile.js<\/strong> (Gulp 4).<\/p>\n<pre class=\"brush:java\">var browsersync = require('browser-sync').create();\r\n\r\n\/\/ init Browser-Sync\r\ngulp.task('browser-sync', function() {\r\n    browsersync.init({\r\n        proxy: \"http:\/\/localhost:8080\/my-showcase\"\r\n    });\r\n});\r\n\r\n\/\/ compile changed Java files by Maven \"mvn compile\"\r\n\/\/ compiled classes will be transfered to target\/classes automatically\r\ngulp.task('java', function () {\r\n    \/\/ use 'spawn' to execute command using Node.js\r\n    var spawn = require('child_process').spawn;\r\n\r\n    \/\/ set the working directory to project root where gulpfile.js exists\r\n    process.chdir(__dirname);\r\n\r\n    \/\/ run \"mvn compile\"\r\n    var child = spawn('mvn', ['compile']);\r\n\r\n    \/\/ print output\r\n    child.stdout.on('data', function(data) {\r\n        if (data) {\r\n            console.log(data.toString());\r\n        }\r\n    });\r\n});\r\n\r\n\/\/ copy changes from src\/main\/webapp to target\/webapp \r\ngulp.task('webapp', function () {\r\n    return gulp.src('src\/main\/webapp\/**\/*', since: {gulp.lastRun('webapp')})\r\n     .pipe(gulp.dest('target\/webapp'));\r\n});\r\n\r\n\/\/ watch files for changes\r\ngulp.task('watch', function () {\r\n    gulp.watch('src\/main\/java\/**\/*.java', ['java']);\r\n    gulp.watch('src\/main\/webapp\/**\/*', ['webapp']);\r\n    gulp.watch(['target\/classes\/**\/*.class', 'target\/webapp\/**\/*'], browsersync.reload);\r\n});\r\n\r\n\/\/ default task\r\ngulp.task('default', gulp.series('browser-sync', 'watch'));<\/pre>\n<p>This file should be placed in the project root folder. Now, you are able to execute the command (Gulp should be installed of course)<\/p>\n<pre class=\"brush:java\">\u00a0\r\ngulp\r\n<\/pre>\n<p>and enjoy the live reloading! Please consider, the Gulp \u00a0<strong>java<\/strong> task. Maven only compiles changed files. It works very fast! Without changes there are nothing to be compiled &#8211; the output of the\u00a0<strong>mvn compile<\/strong> looks like:<\/p>\n<pre class=\"brush:java\">\u00a0\r\n[INFO] Nothing to compile - all classes are up to date\r\n<\/pre>\n<p>If we make a change in one Java file, the output looks like:<\/p>\n<pre class=\"brush:java\">\u00a0\r\n[INFO] Compiling 1 source file to &lt;path&gt;\\showcase\\target\\classes\r\n<\/pre>\n<p>I can also imagine some complex Gulp tasks, such as compiling Java classes in dependent JAR files, build JARs and copy them to the\u00a0<strong>WEB-INF\/lib<\/strong> folder of the exploded WAR.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"http:\/\/ovaraksin.blogspot.com\/2016\/05\/npm-module-browser-sync-in-java-web.html\">NPM module Browser-Sync in Java \/ Web projects<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/join-us\/jcg\/\">JCG partner<\/a> Oleg Varaksin at the <a href=\"http:\/\/ovaraksin.blogspot.com\/\">Thoughts on software development<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Browser-Sync is a handy Node.js based NPM module which can be used for a faster web development. Browser-Sync synchronizes file changes and interactions across many devices. The most important feature is the live reloading. We can use the Browser-Sync in Java \/ Web projects too. Cagatay Civici created a great video tutorial how to use &hellip;<\/p>\n","protected":false},"author":200,"featured_media":112,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[741,1011],"class_list":["post-56340","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-node-js","tag-npm"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>NPM module Browser-Sync in Java \/ Web projects - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Browser-Sync is a handy Node.js based NPM module which can be used for a faster web development. Browser-Sync synchronizes file changes and interactions\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NPM module Browser-Sync in Java \/ Web projects - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Browser-Sync is a handy Node.js based NPM module which can be used for a faster web development. Browser-Sync synchronizes file changes and interactions\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-16T13:00:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-05-17T18:53:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Oleg Varaksin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oleg Varaksin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html\"},\"author\":{\"name\":\"Oleg Varaksin\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/ac096549ff51a73f2e15f128920ed7e0\"},\"headline\":\"NPM module Browser-Sync in Java \\\/ Web projects\",\"datePublished\":\"2016-05-16T13:00:15+00:00\",\"dateModified\":\"2016-05-17T18:53:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html\"},\"wordCount\":532,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"keywords\":[\"Node.js\",\"NPM\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html\",\"name\":\"NPM module Browser-Sync in Java \\\/ Web projects - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"datePublished\":\"2016-05-16T13:00:15+00:00\",\"dateModified\":\"2016-05-17T18:53:16+00:00\",\"description\":\"Browser-Sync is a handy Node.js based NPM module which can be used for a faster web development. Browser-Sync synchronizes file changes and interactions\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"java-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/npm-module-browser-sync-java-web-projects.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"NPM module Browser-Sync in Java \\\/ Web projects\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/ac096549ff51a73f2e15f128920ed7e0\",\"name\":\"Oleg Varaksin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fda1ce47105421f7a352a13dbefec14ab59d59ffae99c6c3002e5841578979d3?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fda1ce47105421f7a352a13dbefec14ab59d59ffae99c6c3002e5841578979d3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fda1ce47105421f7a352a13dbefec14ab59d59ffae99c6c3002e5841578979d3?s=96&d=mm&r=g\",\"caption\":\"Oleg Varaksin\"},\"sameAs\":[\"http:\\\/\\\/ovaraksin.blogspot.com\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/Oleg-Varaksin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"NPM module Browser-Sync in Java \/ Web projects - Java Code Geeks","description":"Browser-Sync is a handy Node.js based NPM module which can be used for a faster web development. Browser-Sync synchronizes file changes and interactions","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html","og_locale":"en_US","og_type":"article","og_title":"NPM module Browser-Sync in Java \/ Web projects - Java Code Geeks","og_description":"Browser-Sync is a handy Node.js based NPM module which can be used for a faster web development. Browser-Sync synchronizes file changes and interactions","og_url":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2016-05-16T13:00:15+00:00","article_modified_time":"2016-05-17T18:53:16+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","type":"image\/jpeg"}],"author":"Oleg Varaksin","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Oleg Varaksin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html"},"author":{"name":"Oleg Varaksin","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/ac096549ff51a73f2e15f128920ed7e0"},"headline":"NPM module Browser-Sync in Java \/ Web projects","datePublished":"2016-05-16T13:00:15+00:00","dateModified":"2016-05-17T18:53:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html"},"wordCount":532,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","keywords":["Node.js","NPM"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html","url":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html","name":"NPM module Browser-Sync in Java \/ Web projects - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","datePublished":"2016-05-16T13:00:15+00:00","dateModified":"2016-05-17T18:53:16+00:00","description":"Browser-Sync is a handy Node.js based NPM module which can be used for a faster web development. Browser-Sync synchronizes file changes and interactions","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","width":150,"height":150,"caption":"java-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/npm-module-browser-sync-java-web-projects.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"NPM module Browser-Sync in Java \/ Web projects"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/ac096549ff51a73f2e15f128920ed7e0","name":"Oleg Varaksin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/fda1ce47105421f7a352a13dbefec14ab59d59ffae99c6c3002e5841578979d3?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fda1ce47105421f7a352a13dbefec14ab59d59ffae99c6c3002e5841578979d3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fda1ce47105421f7a352a13dbefec14ab59d59ffae99c6c3002e5841578979d3?s=96&d=mm&r=g","caption":"Oleg Varaksin"},"sameAs":["http:\/\/ovaraksin.blogspot.com\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/Oleg-Varaksin"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/56340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/200"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=56340"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/56340\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=56340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=56340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=56340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}