0

尝试将 design.io 与 node.js Express 一起使用以将 css/javascript 热推送到浏览器中,我克隆了示例https://github.com/viatropos/design.io-example 并且无法将其热部署后

  1. 按照https://github.com/viatropos/design.io-example/README.md中的说明进行操作

    shell-1-project-dir> design.io --watch ./src

    错误:未知选项 `--watch'

  2. 按照https://github.com/viatropos/design.io/README.md上的说明进行操作

    shell-1-project-dir> design.io 开始

    shell-2-project-dir> design.io watch

    [2012 年 5 月 6 日星期日 03:52:04 GMT] INFO 更新视图/.index.jade.swp

    [2012 年 5 月 6 日星期日 03:52:04 GMT] INFO 更新视图/index.jade

    [2012 年 5 月 6 日星期日 04:03:11 GMT] INFO 更新视图/.index.jade.swp

    [星期日,2012 年 5 月 6 日 04:03:11 GMT] 信息更新意见/index.jade

    这样做,我无法访问http://localhost:4181/因为 node.js 没有启动。我必须改为启动 node.js。

    shell-1-project-dir> 节点 server.js

    但是,这不会热推更改的 index.jade 文件。

好像这个例子已经过时了?

如何热部署?

环境:

 OSX-LION
 node 0.6.15
4

1 回答 1

0

首先,您可以让您的节点服务器在不同的终端窗口中运行(您不需要运行 design.io 服务器或节点服务器,只要它们在不同的端口上,您可以同时运行它们) .

其次,我不认为这能达到你想要的效果。Design.io 似乎用于注入对静态客户端文件(如样式表和 javascript 文件)所做的更改。你更改了一个 .css 文件,design.io 看到更改并将其广播到浏览器,浏览器中的 design.io 强制重新加载样式表,完成更改的热推送。

Jade 文件是另一回事,它们需要在发送到浏览器之前由解释器处理(浏览器不理解jade 文件)。Design.io 将看到更改,但无法对此做任何事情,因为 Node.js 需要处理新文件并向浏览器发送更新的响应。这样做的唯一方法是刷新浏览器页面(从而发送新请求),这并不是真正的热交换。

于 2012-05-06T05:24:52.017 回答