标题几乎说出来了。
一点细节:
我使用Joomla构建网站,通常是在我的本地计算机上进行,并在完成后上传整个网站。但对于某些项目,我需要在日常工作中直接修改服务器上的.js
.css
个文件。我刚认识Grunt
,我希望能为我做一些关于uglify或autoprefix这些文件的杂务。我阅读了很多文章,并且知道Grunt可以观看本地文件,这样当它们被更改时,它会针对它们运行一些任务。
由于我直接修改服务器上的文件,Grunt
是否也可以查看这些文件?
或者,因为我使用Fireftp,它允许我下载目标文件的临时副本,每当我更改并保存临时文件时,它将被上传并覆盖服务器上的目标文件,是否可以制作grunt在文件上传之前启动并执行任务?
答案 0 :(得分:0)
connect任务运行自己的服务器来提供静态页面。如果watch:livereload
任务中提到的文件发生任何更改,则livereload任务会刷新页面。
您不需要默认的静态服务器。因此,请从Gruntfile中删除连接任务
connect: {
options: {
port: 9000,
// change this to '0.0.0.0' to access the server from outside
hostname: 'localhost'
},
livereload: {
options: {
middleware: function (connect) {
return [
lrSnippet,
mountFolder(connect, '.tmp'),
mountFolder(connect, 'app')
];
}
}
},
test: {
options: {
middleware: function (connect) {
return [
mountFolder(connect, '.tmp'),
mountFolder(connect, 'test')
];
}
}
},
dist: {
options: {
middleware: function (connect) {
return [
mountFolder(connect, 'dist')
];
}
}
}
},
同时从connect:livereload
任务
open
和server
grunt.task.run([
'clean:server',
'concurrent:server',
'livereload-start',
'connect:livereload', // Remove This line
'open', // Remove This line
'watch'
]);
然后在html文件中添加以下脚本。
<!-- livereload script -->
<script type="text/javascript">
document.write('<script src="http://'
+ (location.host || 'localhost').split(':')[0]
+ ':35729/livereload.js?snipver=1" type="text/javascript"><\/script>')
</script>