2016-09-28 29 views
0

我正在使用一個React網絡應用程序,該應用程序使用我們作爲npm模塊包含的組件庫。因爲我正在同時在圖書館和webapp上工作,所以我把圖書館作爲模塊以npm鏈接。Jest忽略對鏈接模塊中的對等依賴項作出反應

的目錄都設置這樣的:

~/Development/ 
| 
|-- myWebapp/ 
| |-- package.json # (react included here as dependency) 
| |-- src/ 
| |-- node_modules/ 
|  |-- jest-cli/ 
|  |-- react/ 
|  |-- myLibrary/ -> /usr/local/lib/node_modules/myLibrary 
| 
|-- myLibrary/  # (linked to /usr/local/lib/node_modules by npm link) 
| |-- package.json 
| |-- src/ 
| |-- node_modules/ 
|  |-- react/ # (included as a devDependency and peerDependency) 

我寫我的測試開玩笑(0.8.2)。

我試圖配置Jest在我運行myWebapp的測試時不從myLibrary/node_modules/react加載React。加載React兩次往往會導致問題。在我運行它之前,如果我的測試通過了我的測試rm -r myLibrary/node_modules/react,但是一直都很難卸載並重新安裝React。

我試圖與配置玩笑:

..., 
"modulePathIgnorePatterns": [ 
    "<rootDir>/node_modules/myLibrary/node_modules/react" 
], 
... 

,但似乎並沒有工作

+0

你有沒有得到任何解決方案?我剛剛在Jest的github回購中提出了一個問題:https://github.com/facebook/jest/issues/2447 – olivarra1

+1

@ olvarra1不是一個好主意,但有一個解決方案。 我們最終將myLibary的「內置」版本包含在名爲dist /的項目結構中的文件夾中。解決方案是隻鏈接dist /內myWebapp/node_modules/myLibrary/ 我們發佈模塊myLibary到一個私人npm註冊表。之後,我們將myLibary作爲普通依賴項安裝在myWebapp中,但進入了myWebapps/node_modules/myLibrary,刪除了dist /目錄,並從myLibrary的本地工作副本中刪除了鏈接的dist /,如 ln -s ../。 ./../myLibrary/dist dist/ – albertlockett

回答

0

試用modulePathIgnorePatterns一個新的正則表達式:

"modulePathIgnorePatterns": [ 
    "<rootDir>/node_modules.*/react" 
] 

*應匹配任何字符零或更多次。所以,所有的反應都應該排除在外。

+0

拍攝男人,那也沒有真正的工作 – albertlockett