【问题标题】:Why is my ember-cli build time so slow on windows?为什么我的 ember-cli 构建时间在 Windows 上如此缓慢?
【发布时间】:2014-08-28 00:52:03
【问题描述】:

Ember-cli 在 Windows 上使用 ember server 构建非常缓慢。

Build successful - 13126ms.

Slowest Trees                  | Total
-------------------------------+----------------
TreeMerger (vendor)            | 3154ms
TreeMerger (stylesAndVendor)   | 2051ms
TreeMerger (appAndDependencies) | 1914ms
StaticCompiler                 | 1791ms

这与在 linux 机器上在不到 1 秒的时间内构建相同的项目形成对比。

【问题讨论】:

    标签: windows ember-cli


    【解决方案1】:

    罪魁祸首有两个:

    1. 实时文件系统扫描或保护
      • 来自 Windows Defender(在 win7 中也称为 Microsoft Security Essentials)的实时保护
      • Windows 搜索索引
      • 防病毒扫描
    2. bower_components 文件夹中未使用的文件

    实时扫描

    在构建过程中,ember 项目的 ./tmp 文件夹中会生成大量文件,索引器和实时保护都会对每个文件进行额外读取,这会增加大量额外的文件 I/O 操作。

    解决办法是:

    这应该可以让您的构建时间缩短到几秒钟。 Windows 的其他速度改进是 being investigated continuing to be investigated 与 Broccoli 对构建过程的处理有关。

    管理未使用的 bower 文件

    lots of files in the bower_components is the biggest culprit

    我编写了一个脚本clean-ember-cli.js,它删除了除 ember-cli 依赖项之外的所有内容,以及在Brocfile.js 中导入的所有内容。我正在恢复到大约 5 秒的构建时间。

    更新

    Reports are 以管理员身份运行控制台也有帮助。

    【讨论】:

    • @jaaksarv 现在很正常。您是否还使用上面链接的“clean-ember-cli.js”脚本从 bower_componants 文件夹中清除了不必要的文件?
    • @nissemand 只需将脚本保存到您的 ember-cli 项目的根文件夹并使用节点运行。它应该读取您的 Brocfile 并排除 app.import() 中包含的任何库。如果您尝试构建并且 ember-cli 抱怨缺少依赖项,只需添加到 EMBER_FILES 列表并在重新运行“干净”脚本之前执行 bower install
    • @Weston 我发现以管理员身份运行终端有助于进一步将构建时间从 38 秒缩短到 28 秒。显然这让 ember-clie 使用符号链接而不是复制文件 (from this answer)。也许值得添加到您的答案中?
    • 嗯,我想我的新电脑会是 Mac!
    • 谢谢,以管理员身份运行速度提高了大约 40-50 倍,从 90 秒到 2 秒 :)
    【解决方案2】:

    Official recommendation 来自 ember-cli 以提高其在 Windows 上的性能

    使用以下命令安装带有节点的 ember-cli-windows

    npm install -g ember-cli-windows

    在您的项目根文件夹上运行以下命令

    ember-cli-windows

    【讨论】:

    • 谢谢!我没有保持最新,所以我不知道现在有用于优化的工具。使您的答案成为公认的答案。
    • 您需要以管理员身份运行命令ember-cli-windows。否则它会失败,错误为Scripts cannot be executed on this system. To fix, please run the command below using PowerShell as Administrator and try again:
    • 此脚本仅重新配置 Windows Defender 和索引。如果您已经关闭这些或使用其他 AV 或索引工具(如我的情况),这将无济于事。
    【解决方案3】:

    请注意一件重要的事情...我在任何论坛中都没有发现...如果您正在使用笔记本电脑并且没有连接 AC,Windows 可能会以低性能模式运行以保持电池电量。这会导致 ember 构建项目慢 4 倍

    【讨论】:

    • 这适用于任何处理器密集型任务。
    【解决方案4】:

    使用 ember-cli 1.13.13 和以管理员身份运行的命令提示符为我修复了它

    【讨论】:

      【解决方案5】:

      除了上面提供的答案之外运行

      ember s
      

      在管理员模式下的 powershell 中。这将启用默认情况下在 Windows 中未启用的符号链接。拥有符号链接会创建一个更扁平的 node_modules 文件夹,从而加快运行时间。

      (Source)

      【讨论】:

        【解决方案6】:

        从内部版本 20262 开始,Windows 10 具有 WSL 2。 这是您机器上的 Linux,它为我们提供了与 在 Linux 上。

        从 Microsoft 商店获取最后一个 Ubuntu。

        由于速度慢,请勿使用/mnt/ 文件夹进行回购, 使用~ 文件夹。

        在 Ubuntu 上连接终端并克隆您的存储库。

            cd ~
            git clone your-repo
        

        安装node version managernode

        安装 ember-cli 并启动服务器。

            npm install -g ember-cli
            cd ~/your-repo
            npm i
            ember serve
        

        在 VSCode 中安装插件 "Remote - WSL"open 你的仓库并开始开发。

        【讨论】:

          【解决方案7】:

          在 Windows 7 中,通过为项目的 /tmp 目录关闭关闭加密文件系统 (EFS),我得到了 50% 的改进。 (右键属性->高级->加密内容...)

          对于在管理员模式下运行的 Ember CLI 的更高版本,如 here 所述以及 D-Go 在他的回答中建议的方法似乎是可行的方法,假设您的公司允许这样做。

          如果您像我一样使用 GIT Bash 运行 Ember,您可能对如何将其设置为在管理员模式下自动运行感兴趣 here

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-09-07
            • 2013-02-26
            • 1970-01-01
            • 2011-12-17
            • 2019-07-15
            • 2018-02-13
            • 2014-11-15
            • 1970-01-01
            相关资源
            最近更新 更多