Gulp 如何将AEM 6.3传送到Livereload clientlibs
我正在使用gulp aemsync插件将css和js更改同步到AEM实例上的clientlib。A有一个gulp任务,可以很好地监视运行gulp aemsync的js和css(刷新时网站上会有更改),但是如果我有点懒,那么实时重新加载工作会很好,这样我就不必在工作时手动刷新页面 我尝试了以下两个在线指南: 遵循以下步骤:Gulp 如何将AEM 6.3传送到Livereload clientlibs,gulp,aem,livereload,Gulp,Aem,Livereload,我正在使用gulp aemsync插件将css和js更改同步到AEM实例上的clientlib。A有一个gulp任务,可以很好地监视运行gulp aemsync的js和css(刷新时网站上会有更改),但是如果我有点懒,那么实时重新加载工作会很好,这样我就不必在工作时手动刷新页面 我尝试了以下两个在线指南: 遵循以下步骤: 在AEM实例上安装Netty软件包 在AEM实例上安装ACS AEM工具包 安装RemoteLiveReload chrome扩展(AEM实例托管在AWS上) 这不起作
- 在AEM实例上安装Netty软件包
- 在AEM实例上安装ACS AEM工具包
- 安装RemoteLiveReload chrome扩展(AEM实例托管在AWS上)
// start a websocket server
const WebSocket = require('ws'); // requires "npm install ws"
const wss = new WebSocket.Server({ port: 8081 });
const connections = [];
wss.on('connection', function connection(ws) {
connections.push(ws); // keep track of all clients
// send any new messages that come to this server, to all connected clients
ws.on('message', (d) => connections.forEach(connection => connection.send(d)));
});
// create a new websocket to send messages to the websocket server above
const ws = new WebSocket('ws://localhost:8081');
// send a regex to the server every second
// NOTE: CHANGE this to run when aemsync is triggered in your build
setInterval( () => ws.send('reload'), 1000 );
然后,在您的JS代码(在AEM上)或真正的
标记中,确保不会超出您的本地(或开发人员/产品),您可以设置websocket侦听器来刷新页面:
socket = new WebSocket('ws://localhost:8081');
socket.onopen = // add function for when ws is open
socket.onclose = // add function for when ws is closed
socket.onerror = // add function for when ws errors
// listen to messages and reload!
socket.addEventListener('message', function (event) {
location.reload();
});
或者,您可以使用我开发的chrome插件:
无论如何它都不是完美的。然而,对于一个基本的设置,它应该工作得很好!a您不需要触摸AEM JS。谢谢Ahmed,我已经创建了一个websocket服务器,按照您的建议向浏览器窗口发送重新加载命令。效果很好。对于任何试图使用AEM ACS commons live reload软件包进行此操作的人,请忘记它-它不起作用!