Design.io无法热推代码

时间:2012-05-06 04:08:33

标签: javascript node.js hotdeploy

尝试将design.io与node.js Express一起使用,以便将css / javascript热推入浏览器, 我克隆了示例https://github.com/viatropos/design.io-example

之后无法进行热部署
  1. 按照https://github.com/viatropos/design.io-example/README.md

    中的说明操作

    壳-1-项目-DIR> design.io --watch ./src

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

  2. 按照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文件。

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

    我如何热部署?

    ENV:

     OSX-LION
     node 0.6.15
    

1 个答案:

答案 0 :(得分:0)

首先,您可以让节点服务器在不同的终端窗口中运行(您不需要运行design.io服务器或节点服务器,只要它们处于打开状态,您就可以同时运行它们不同的港口)。

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

玉文件是一个不同的故事,它们需要在被发送到浏览器之前由解释器处理(浏览器不理解玉文件)。 Design.io将看到更改但无法做任何事情,因为Node.js需要处理新文件并向浏览器发送更新的响应。它执行此操作的唯一方法是刷新浏览器页面(从而发送新请求),这实际上不是热插拔。