簡體   English   中英

玩笑 --watch 由臨時文件觸發

[英]jest --watch triggered by temp files

我在 MacOS Catalina 上運行 Jest 26.4.2,使用 Emacs 作為我的文本編輯器。 當 watcher 運行時,任何時候 Emacs 創建一個臨時文件 jest 都會觸發運行。 這導致許多運行觸發往往會錯過實際的文件保存事件。

我正在用 npx jest 運行npx jest --watch

我嘗試了各種開玩笑的配置,看起來很有前途的testPathIgnorePatterns沒有幫助。

Emacs 通過使用模式.#<target file name>指向以 5 位數字結尾的文件的符號鏈接來創建臨時文件。 我試過忽略所有這些,但沒有幫助。

jest.config.js

  watchPathIgnorePatterns: ['/[0-9]{5}/', '/#/'],
  testPathIgnorePatterns: ['/[0-9]{5}/', '/#/'],
  modulePathIgnorePatterns: ['/[0-9]{5}/', '/#/'],

看起來你忘了在最后添加一個點並刪除斜線(因為它是一個文件而不是一個文件夾)? 所以不是/#/它應該是/.# 我不是正則表達式大師,所以只創建了兩個文件

  • .#test.test.js
  • test.test.js

並且看起來第一個被正確忽略( npm t -- --watch )與我的package.json配置。 您也可以嘗試使用<rootDir> ,或直接使用npm t -- --config jest.config.js傳遞配置文件

"jest": {
    "testPathIgnorePatterns": [
        "<rootDir>/.#",
        "/.#"
    ]
}

看看最近的一個玩笑(2021 年 4 月 26.6.1), createHasteMap() function 調用saneignored了由config.modulePathIgnorePatternsconfig.watchPathIgnorePatterns ( src ) 組成的。 watchPathIgnorePatterns似乎是合適的,但我歡迎反駁建議。

jest.config.js

module.exports = {
  modulePathIgnorePatterns: [
    "\\/\\.#"
  ]
}

如果出於某種原因,您不想跳過目錄層次結構中的.../.#...路徑,則可以使用關鍵字<rootDir>創建更具體的模式,該模式將被替換為指向到項目的根目錄。 (如果您還有一個名為<rootDir>的目錄,請停止胡鬧。)

我的編輯 Emacs / Spacemacs 創建的文件是鎖定文件 一旦文件被編輯、保存或還原,它們就會被創建和刪除。

我無法jest地忽略它們,所以我將我的 Spacemacs TypeScript 層配置為不通過(typescript:variables create-lockfiles nil)在 TypeScript 模式下創建它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM