[英]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 調用sane
並ignored
了由config.modulePathIgnorePatterns
和config.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.