npm - 为什么 emacs 终端模式下 npm 开发服务器启动慢?
问题描述
几年来,我第一次重新尝试一些前端项目。我尝试的许多基于 npm 的 javascript 项目最终都需要很长时间才能在开发模式下启动,即使对于 Hello World-ish 示例也是如此。特别是我正在尝试Nuxt.js。
开发服务器启动大约需要 100 秒,并且似乎没有任何内容被缓存,因此重新启动(不是热重载)需要相同的时间。我对该项目和已知 npm 问题的研究尚未找到任何明确的根本原因或改进方法。
我在具有核心 i5、8 GB 内存和 SSD 的 2018 13" MacBook Pro 上以终端模式使用 emacs 26.1。
当我运行npm run dev
启动nuxt
开发服务器时,我得到了与一些不寻常的字符相关的重复error in process filter: Args out of range: "\342", -1
错误,他们正在使用它们来尝试使输出变得漂亮。如果我在 vanilla Mac OS 终端中尝试相同的操作,服务器启动速度会快 10 倍。为什么会出现这些错误,为什么在 emacs 终端中它会慢得多?
解决方案
事实证明,重复的error in process filter
问题可能是由最近修复的术语模式中的错误引起的,但在我的 emacs 版本中可能仍然是一个问题。
作为一种解决方法,通过过滤掉有关正在构建的模块的重复行,以下可以让nuxt
开发服务器在我的 mac 上的 emacs 终端中以 ~10 秒而不是 ~100 秒的速度运行:
$ npm run dev | grep -v modules
请注意,我尝试使用 npm 的选项来调整日志级别,但似乎没有一个过滤此输出。如果有人知道一种更“官方”的过滤方式,或者甚至更好,如果你知道如何使它不会在每次开发服务器启动时都尝试重建模块,我很想知道。
编辑:调整 package.json 文件中的脚本命令以包含 grep 过滤器可能是有意义的dev
,这样您仍然可以只键入npm run dev
并获取解决方法。
推荐阅读
- php - 将当前 URL 插入 PHP 电子邮件
- python-3.x - 如果输入是整数,甚至将输入转换为整数,如何使用布尔值进行检查
- powershell - winforms根据标签更改按钮名称
- json - Spark:处理 JSON 数组字段中的空值
- python - re.sub 方法不适用于“$”模式
- python - Python 使用省略号或无 + 浮点类型提示未分配属性
- python - 如何阻止 Pandas 自动转换我的日期格式?
- linux - Linux 上的程序如何与 X11 服务器通信?
- java - NullPointer Excpetion Java Minecraft MySQL
- java - FIREBASE:从另一个孩子那里获取数据详细信息