2014-07-02 94 views
0

我最近發現了npm version [major|minor|patch]命令來自動撞包的版本號並提交更改。這是一個神奇的小發現。npm運行測試之前生成

是否可以在碰撞前運行測試& git commit with npm?試圖避免必須編寫一個bash腳本。

我無法在Google或堆棧搜索上找到任何「npm version .....」匹配太多無關的結果。並且沒有關於在文檔中測試的信息npm-version

我在請求在此發現之前編寫腳本。測試,碰撞版本,然後git提交。

我使用的是業力,包含的package.json

"scripts": { 
    "test": "karma run" 
} 

在測試我一個失敗的測試運行增加了一個失敗的測試

it("force fail",function(){ 
    expect(true).toEqual(1); 
}); 

所以karma runnpm test結果都故宮version命令。我希望這會停止版本補丁,但沒有運氣。我設法遇到了失敗的測試。

回答

0

將它們添加到scripts可以工作,但我真的會建議在shell的運行時配置中定義一個函數。

"scripts": { 
    "test": "karma run", 
    "major": "karma run && npm version major && git commit", 
    "minor": "karma run && npm version minor && git commit", 
    "patch": "karma run && npm version patch && git commit" 
} 
+0

npm版本已經在處理git commit,並且該命令在繼續撞擊版本之前不會檢查通過的測試。我想在繼續之前測試成功的測試運行。 – Lex

+0

@Lex:這就是'&&'所做的。或者至少這是它應該做的事情;如果不這樣做,「業力」的工作就錯了。 – Ryan

+0

抱歉您是對的,它基於'業力運行'失敗或傳遞(對於業力運行&npm測試)失敗或傳遞。我會考慮在運行時間糟糕的練習中爲團隊或開源項目放置構建腳本/命令。不過,這是一個好主意,它解決了當前的要求。我會去做那個:)別名npmpatch ='npm測試&npm版本補丁'。我希望在npm命令中有一個神祕的標誌。 – Lex

相關問題