我需要在我的 index.html 页面中插入一个代码片段,只有当 Grunt livereload 正在运行时。基本思想是运行一个假的 HTTP 服务器(只需几行 sinonjs 就很容易),但只有当我使用 Grunt 处于开发模式时。
我知道这是可行的,因为 Grunt livereload 自己在 HTML 页面的底部插入了一个片段,问题是我如何像 livereload 任务一样插入我自己的代码片段?
非常感谢,
大卫。
我需要在我的 index.html 页面中插入一个代码片段,只有当 Grunt livereload 正在运行时。基本思想是运行一个假的 HTTP 服务器(只需几行 sinonjs 就很容易),但只有当我使用 Grunt 处于开发模式时。
我知道这是可行的,因为 Grunt livereload 自己在 HTML 页面的底部插入了一个片段,问题是我如何像 livereload 任务一样插入我自己的代码片段?
非常感谢,
大卫。
根据您希望注入 HTML 的位置,您可以执行以下操作(完全未经测试):
var livereloadUtils = require('grunt-contrib-livereload/lib/utils');
var oldGetSnippet = livereloadUtils.getSnippet;
livereloadUtils.getSnippet = function() {
var snippet = oldGetSnippet();
// add your snippet stuff to snippet. So either:
// snippet += '<p>your html</p>'; //or
// snippet = '<p>your html</p>' + snippet;
return snippet;
};
var lrSnippet = livereloadUtils.livereloadSnippet;
这只会在</body>
. 查看libs/utils.js以更好地了解正在发生的事情。