【问题标题】:count files watched by grunt计算 grunt 观看的文件数
【发布时间】:2016-12-10 00:16:44
【问题描述】:

我从我的客户那里得到了一个新的 Angular + Node 项目,我将它设置在我的本地。该应用程序运行良好。但一个问题是当我运行grunt 命令时 CPU 占用 100% 并且我的系统挂起。但是在具有相同配置的客户端计算机上,一切似乎都运行良好。

在查看了许多线程后,我发现当 grunt 正在观看太多文件时会出现这种问题。我还使用grunt watch --verbose 来查看我正在观看的文件。实际上,我觉得我们正在观看很多不必要的文件,例如 angluar 和 jquery 库文件。

有没有什么方法/插件可以通过 grunt 命令准确计算我正在观看多少个文件?

【问题讨论】:

    标签: javascript angularjs node.js gruntjs


    【解决方案1】:

    如果它在具有相同配置/环境但功能更强大的机器上运行良好,那么我认为您认为您正在观看的文件太多是正确的。

    如果您还没有,您应该在只监视几个文件的配置上运行 grunt watch,以进一步支持您只是监视太多文件的路径。

    最后,您应该只观看需要观看的文件,或者换句话说,在开发过程中实际上会发生变化。第三方库等绝对不应包含在该集合中!

    我对您的建议是只观看您需要观看的文件,并且您可以准确指定您需要观看的文件或使用具有某种程度特异性的 glob 模式。我还要指出,您可以将否定运算符 ! 与 glob 一起使用。

    如果按照我的建议,你仍然遇到同样的问题,我认为你有三个选择:

    1. 创建更具体的监视任务,一次只运行一两个。
    2. 升级您的硬件
    3. 根本不使用 watch,直接从命令行手动触发任务。

    编辑: 在下面添加来自 cmets 的答案,因为它直接解决了所提出的问题。

    要计算 grunt 监视的文件,请使用 linux find 命令并将其通过管道传输到 wc -l。因此,如果您在项目根目录中进行操作,并且想要计算 src 目录及其子目录中具有 .js 扩展名的文件的数量,那么这将类似于 find . -name "src/*.js" | wc -l。我们在这里所做的是查找所有符合您的条件的文件,然后通过使用 wc 命令和 -l 来计算文件数量,以计算标准输出中的换行符。

    【讨论】:

    • 我运行 grunt watch --verbose 并从我的终端复制所有监视的文件名并粘贴到记事本++文件中,我可以看到它正在监视大约 1152 个文件。让 CPU 使用率达到 100% 就足够了吗?
    • 有一些变量,比如你的 CPU 的能力,让我无法确定地回答这个问题。简而言之,是的,这是可能的。那是很多文件。对于您正在观看的文件,我会更准确。此外,您应该确保您运行的是最新版本的 grunt 和 grunt-contrib-watch,因为在 grunt-contrib-watch 的历史中已经有许多性能改进。
    • 此外,尽管您似乎确实对文件进行了粗略计数,但要回答如何计算 grunt 监视的文件的问题,请使用 linux find 命令并将其通过管道传递给wc -l .因此,如果您在项目根目录中进行操作,并且想要计算 src 目录及其子目录中具有 .js 扩展名的文件的数量,那么这将类似于 find . -name "src/*.js" | wc -l。我们在这里所做的是找到所有符合您的条件的文件,然后通过使用wc 命令和-l 来计算文件数量来计算换行符。
    猜你喜欢
    • 2021-01-29
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    相关资源
    最近更新 更多