2

我刚刚构建了 Nodejs 并安装了 0.10.6 然后卸载了 yo+grunt-cli+bower+generator-webapp 并使用 npm -g 重新安装到最新版本,
yo webapp
但是现在实时重新加载不起作用,在 chrome devtools 中也看不到任何错误

哟 -v: 1.0beta5
grunt-cli v0.1.8 和 grunt v0.4.1
bower -v: 0.9.2
节点 -v: 0.10.6
npm -v: 1.2.18

grunt server 显示 watch 任务:时间 + 文件名已更改

尝试:将 Gruntfile 中的端口号更改为.. LIVERELOAD_PORT = 34729; nogo :(
我较旧的 webapp 项目仍然可以正常工作
Lost..

谢谢
--------------------- 更新
1. 将 lrSnippet 移动到 Grunfile.js 中的第 1 位
2. 在 index.js 中移动

    end.call(res, res.data, encoding);

在 if 块之外

现在它部分工作:
摘要:
1. 更改 index.html > 重新加载正常
2. 更改 main.scss > 重新加载正常
3. 更改 my.sass >

第三步后不正常
1. 更改 index.html > 不正常
2. 更改 main.scss > 不正常

4. 更改 hello.coffe > 不正常
步骤 4 之后
1. 更改 index.html > ok
2. 更改 main.scss > ok

//------------------------------------- index.html
更改 index.html
重新加载 ok
grunt服务器窗口记录更改并发出重新加载命令

grunt 服务器窗口抓取 =

    Running "watch" task
    Waiting...OK
    >> File "app/index.html" changed.

    Running "watch" task
    ... Reload app/index.html ...
    Completed in 0.002s at Sat May 18 2013 12:47:58 GMT+0530 (IST) - Waiting...

//------------------------------------------------- main.scss
更改 main.scss
重新加载 ok
grunt服务器窗口抓取 =

    >> File "app/styles/main.scss" changed.

    Running "compass:server" (compass) task
    overwrite .tmp/styles/main.css 
    unchanged app/styles/my.sass

    Running "watch" task
    Completed in 1.906s at Sat May 18 2013 12:48:24 GMT+0530 (IST) - Waiting...
    OK
    >> File ".tmp/styles/main.css" changed.

    Running "watch" task
    ... Reload .tmp/styles/main.css ...
    Completed in 0.002s at Sat May 18 2013 12:48:24 GMT+0530 (IST) - Waiting...

//---------------------------------------------------- my.sass
更改为 my.sass
重新加载不正常(不重新加载)
咕噜服务器窗口抓取=

    Running "watch" task
    Waiting...OK
    >> File "app/styles/my.sass" changed.

    Running "compass:server" (compass) task
    unchanged app/styles/main.scss
    unchanged .tmp/images/generated/design-s65ab268e46.png
    overwrite .tmp/styles/my.css 

    Running "watch" task
    Completed in 0.602s at Sat May 18 2013 13:00:19 GMT+0530 (IST) - Waiting...

//----------------------------------------------------
my.sass 更改后
对索引所做的更改.html 或 main.scss r 未显示在 grunt 服务器窗口

中 Watch 命令不记录任何内容。
更改 r 未重新加载
//-------------------------
重新启动 Grunt 服务器
//-- ------------------------------------ 你好.coffee

grunt 服务器窗口抓取 =

    OK
    >> File "app/scripts/hello.coffee" changed.

    Running "coffee:dist" (coffee) task
    File .tmp/scripts/hello.js created.

    Running "watch" task
    Completed in 0.011s at Sat May 18 2013 13:34:56 GMT+0530 (IST) - Waiting...

//-------------------------------------

4

4 回答 4

2

当前的 livereload/yo 设置存在错误。以下是修复有问题的依赖项(connect-livereload)的详细信息。

https://github.com/yeoman/generator-webapp/issues/63

于 2013-05-18T02:04:42.557 回答
0

已提交以解决此问题。

https://github.com/yeoman/generator-webapp/pull/67

我猜我们很快就会看到更新。

同时你可以做的是修改你的 Gruntfile.js。在第 61 行附近查看 livereload 的连接选项并替换此代码段的配置。

livereload: {
  options: {
    middleware: function (connect) {
      return [
       lrSnippet,
       mountFolder(connect, '.tmp'),
       mountFolder(connect, yeomanConfig.app)
      ];
    }
  }
},

此外,将模块 connect-livereload 更新到 0.1.4 也是一个好主意。

只需npm install connect-livereload在您的项目目录上运行。

于 2013-05-19T15:17:51.783 回答
0

您可以确保进一步诊断问题的三件事。

  1. 确保您使用的是最新版本npm update -g yo
  2. 您不应该明确使用 LiveReload 插件,它在运行时与 Yeoman watch 命令冲突
  3. 您的端口(在 gruntfile.js 中)可能正在被其他进程使用,请尝试从终端退出,更改端口并查看它是否有效。

问题是 yeoman 不会在当前版本中自动更改端口,如果您在当前终端会话中强行关闭它,它就会停止工作。

此处讨论了相同的问题 - https://github.com/yeoman/yeoman/issues/938

如果您仍然看到问题,请尝试运行以下命令并将输出传递到此处。

yo --version && echo $PATH $NODE_PATH && node -e 'console.log(process.platform, process.versions)' && cat Gruntfile.js
于 2013-05-17T05:02:38.593 回答
0

我在 Gruntfile.js 中添加了实时重载作为监视选项:

    watch: {
        options: {
            nospawn: true,
            livereload: true
        },

设置 livereload:port 而不是 livereload:options:port 对我有用:

livereload: {
  port: 35728
}
于 2013-06-19T16:21:39.257 回答