Total Pageviews

Friday, 29 November 2013

Python LiveReload


LiveReload Server in Python Version.
Web Developers need to refresh a browser everytime when he saved a file (css, javascript, html), it is really boring. LiveReload will take care of that for you. When you saved a file, your browser will refresh itself. And what's more, it can do some tasks like compiling less to css before the browser refreshing.

Installation

Python LiveReload is designed for web developers who know Python.

Install python-livereload

Install Python LiveReload with pip:
$ pip install livereload
If you don't have pip installed, try easy_install:
$ easy_install livereload

Install Browser Extensions

A browser extension is not required, you can insert a script into your html page manually:
<script type="text/javascript" src="http://127.0.0.1:35729/livereload.js"></script>
But a browser extension will make your life easier, available extensions:
  • Chrome Extension
  • Safari Extension
  • Firefox Extension
Visit: http://help.livereload.com/kb/general-use/browser-extensions

Quickstart

LiveReload is designed for more complex tasks, not just for refreshing a browser. But you can still do the simple task.
Assume you have livereload and its extension installed, and now you are in your working directory. With command:
$ livereload [-p port]
your browser will reload, if any file in the working directory changed.

LiveReload as SimpleHTTPServer

Livereload server can be a SimpleHTTPServer:
$ livereload -p 8000
It will set up a server at port 8000, take a look at http://127.0.0.1:8000. Oh, it can livereload!
IF YOU ARE NOT USING IT AS A HTTP SERVER, DO NOT ADD THE PORT OPTION.

Guardfile

More complex tasks can be done by Guardfile. Write a Guardfile in your working directory, the basic syntax:
#!/usr/bin/env python
from livereload.task import Task

Task.add('static/style.css')
Task.add('*.html')
Now livereload will only guard static/style.css and html in your workding directory.
But python-livereload is more than that, you can specify a task before refreshing the browser:
#!/usr/bin/env python
from livereload.task import Task
from livereload.compiler import lessc

Task.add('style.less', lessc('style.less', 'style.css'))
And it will compile less css before refreshing the browser now.

Linux

If you're using python-livereload under Linux, you should also install pyinotify, as it will greatly improve responsiveness and reduce CPU load.
You may see errors such as:
[2013-06-19 11:11:07,499 pyinotify ERROR] add_watch: cannot watch somefile WD=-1, Errno=No space left on device (ENOSPC)
If so, you need to increase the number of "user watches". You can either do this temporarily by running (as root):
echo 51200 > /proc/sys/fs/inotify/max_user_watches
To make this change permanent, add the following line to /etc/sysctl.conf and reboot:
fs.inotify.max_user_watches = 51200

Others

If you are on a Mac, you can buy LiveReload2.
If you are a rubist, you can get guard-livereload.

from https://github.com/lepture/python-livereload

相关帖子:http://briteming.blogspot.co.uk/2013/10/livereload.html