【问题标题】:Grunt: Fatal error: watch EPERMGrunt:致命错误:观看 EPERM
【发布时间】:2014-11-02 04:33:09
【问题描述】:

您可以在此处查看/克隆完整代码:https://github.com/mlewisTW/grunt-tests

我想观看src 目录(用于缩小、合并、减少等),它将所有内容放入build 目录。我还想观看build 目录以便重新加载。这是手表配置 sn-p:

watch: {
        options: {
            livereload: false
        },
        build: {
            files: ['<%= srcDir %>/**/*'],
            tasks: 'build'
        },
        reload: {
            files: ['<%= buildDir %>/**/*'],
            options: {
                livereload: true
            }
        }
    },

我在 Windows 8 上。我在更改文件时收到 Fatal error: watch EPERM,它启动了 build 任务的第一步(清理)。我猜这与我试图删除一个被监视的目录有关。

有没有办法在我构建时关闭 livereload watch 任务,然后在完成后重新启动它?

还有其他/更好的方法吗?

【问题讨论】:

  • 您找到解决方案了吗?我也有同样的问题。
  • github.com/angular-app/angular-app/issues/163 -> 这似乎是一个“随机”的 Windows 问题,根据第一次后的这个问题,第二个“grunt watch”解决了这个问题。你能试试吗?否则可能与权限相关,您的 shell/git shell/ 某事是否在管理模式下运行?
  • El Capitan 也遇到了这种情况,有人说是由于 /usr/bin 不再可写的无根更改。你在 El Capitan 上吗?
  • 手动安装或通过包管理器安装时,Node 和 NPM 的权限可能会有点混乱。我建议通过安装NVM 来尝试它,它位于您的个人目录下并且没有权限冲突。上面的 repo 在我的环境中运行良好,我正在使用节点 v6.2.0

标签: node.js gruntjs livereload grunt-contrib-watch


【解决方案1】:

来自Github issues:

Windows 上的 EPERM 意味着您可以删除或写入文件。

这通常是因为另一个进程正在持有该文件的句柄。

有时,Windows 上的 nodeJS 会随机发生这种情况。我找到了 再运行一次就好了。

【讨论】:

  • 正如@Dave Foster 所指出的,将来如果逐字复制,您可能应该引用答案的来源。
猜你喜欢
  • 2013-05-20
  • 2017-01-25
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
  • 1970-01-01
  • 2015-11-07
  • 2016-10-23
相关资源
最近更新 更多