尝试将design.io与node.js Express一起使用,以便将css / javascript热推入浏览器, 我克隆了示例https://github.com/viatropos/design.io-example
之后无法进行热部署按照https://github.com/viatropos/design.io-example/README.md
中的说明操作壳-1-项目-DIR> design.io --watch ./src
错误:未知选项`--watch'
按照https://github.com/viatropos/design.io/README.md
上的说明操作壳-1-项目-DIR> design.io start
壳-2-项目-DIR> design.io watch
[太阳,2012年5月6日03:52:04 GMT] INFO更新了观点/ .index.jade.swp
[太阳,2012年5月6日03:52:04 GMT] INFO更新了views / index.jade
[太阳,2012年5月6日04:03:11 GMT] INFO更新了观点/ .index.jade.swp
[Sun,06 May 2012 04:03:11 GMT] INFO更新了views / index.jade
这样做,我无法访问http://localhost:4181/,因为node.js未启动。我必须改为启动node.js。
壳-1-项目-DIR> node server.js
但是,这并没有热推更改的index.jade文件。
好像这个例子已经过时了?
我如何热部署?
ENV:
OSX-LION
node 0.6.15
答案 0 :(得分:0)
首先,您可以让节点服务器在不同的终端窗口中运行(您不需要运行design.io服务器或节点服务器,只要它们处于打开状态,您就可以同时运行它们不同的港口)。
其次,我认为这不符合您的要求。 Design.io似乎是用于注入对静态客户端文件(如样式表和javascript文件)所做的更改。你更改.css文件,design.io看到更改并将其广播到浏览器,浏览器中的design.io强制重新加载样式表,完成热更改。
玉文件是一个不同的故事,它们需要在被发送到浏览器之前由解释器处理(浏览器不理解玉文件)。 Design.io将看到更改但无法做任何事情,因为Node.js需要处理新文件并向浏览器发送更新的响应。它执行此操作的唯一方法是刷新浏览器页面(从而发送新请求),这实际上不是热插拔。