我有一個我正在開發的Node.js服務器,並且我使用nodemon在源代碼更改時重新啓動服務器。如何告訴nodemon忽略除一個目錄以外的所有node_modules
此服務器對另一個模塊(我正在開發)有依賴性,所以如果對該模塊的更改也重新啓動了服務器,那將會很好。
最好的嘗試尚未(!謝謝,bitstrider)
我做了一個回購協議,如果有人想檢查出來重現此問題用最少的代碼:https://github.com/shawninder/nodemon-troubles
亮點是nodemon.json
:
{
"ignoreRoot": [
".git",
".nyc_output",
".sass-cache",
"bower-components",
"coverage"
],
"ignore": [
"node_modules/!(is-node)",
"node_modules/is-node/node_modules"
]
}
ignoreRoot
相同the defaults,但沒有node_modules
。ignore
是我試圖告訴它忽略node_modules,但不是is-node
。
這幾乎可以工作(編輯is-node重新啓動服務器),但它正在監視所有節點模塊,不僅是is-node。
如何讓nodemon忽略除一個之外的所有節點模塊?
詳細
- 我使用的是最新版本的nodemon的,1.11.0
- 我也試圖與https://github.com/remy/nodemon/pull/922
說明問題
Nodemon將忽視並將它們組合成一個大規則在將此傳遞給chokidar之前。這是一種基於正則表達式的自定義解析算法,不支持全局否定和正則表達式語法。例如,上面的例子中產生下面的正則表達式:
/\.git|\.nyc_output|\.sass\-cache|bower\-components|coverage|node_modules\/!\(is\-node\)\/.*.*\/.*|node_modules\/is\-node\/node_modules\/.*.*\/.*/
通知否定字符!
端向上作爲在所得的正則表達式字面!
。使用負向預覽語法也不起作用,因爲控制字符被轉換爲文字字符。
應該但不。在我最近的嘗試中,我在nodemon.json中使用了以下內容: '{「ignoreRoot:[」.git「,」.nyc_output「,」.sass-cache「,」bower-components「,」coverage「],忽略「:[」node_modules /!(my-watched-module)「,」node_modules/my-watched-module/node_modules「]} 它正確地觀看我觀看的模塊,而不是觀看我觀看的模塊的node_modules,但它仍然在觀看其他節點模塊... – Shawn
我編輯我的問題,並帶有一個鏈接到一個回購問題,如果您有興趣,可以重現問題 – Shawn
@Shawn我的更新答案應該適用於您 – bitstrider