2017-07-24 152 views
2

我正在學習使用webpack,通常進入Javascript世界,包括npm。使用npm installnpm install --save曾經用過webpack嗎?

Severalanswers處理--save VS --save-dev。我的理解是,他們使用(和更新package.json)再造無論是運行或通過npm install <the package being developed or ran>

  • --save一個開發環境時,用來保存運行中的Node.js應用所需的軟件包是真正有用的,即在服務器
  • --save-dev上用於保存開發應用
  • 所需的軟件包裸npm install <module>剛剛安裝包,而無需啓用的可能性,在package.json
  • 別的地方安裝它,雖然相應的條目

因此,在一個webpack上下文,是--save有史以來使用?我不相信,因爲創建的是一個JS包,然後包含在HTML文件中,並在瀏覽器中運行。從這個意義上說,從來沒有必要「保存運行你的應用程序所需的模塊」。

本着同樣的精神,--save-dev是有用的(同樣,在的WebPack上下文)在它允許某人在別處開發(在這種情況下,在應用這兩個模塊(比如,moment.js)和後勤的人(比如說,gulp)應--save-dev,對吧?)

最後,一個光禿的npm install <module>也是可能的(雖然不太有用)是開發不打算在別處完成(模塊仍然安裝,但沒有提到這個事實是在package.json)。

這是正確的嗎?具體來說,在webpack上下文中缺少--save的假設是否正確?

+1

我會使用帶WebPack的'--save-dev',因爲它只是開發和構建環境所必需的。 –

+0

它會進入您的產品包嗎?_yes:_'--save' _no:_'--save-dev' – Damon

+0

@Damon:爲什麼'''保存'在進入產品包時?它將在服務器中提供,僅此而已。該模塊本身永遠不會用於產品(除了在JS束中) – WoJ

回答

0

在應用程序的生產版本中使用的任何東西都應該在save中列出。例如,如果您使用React,您的應用程序會在最終生產版本中使用React。無關緊要的是你的文件被捆綁了,但是它在編譯時嚴重依賴於運行。

在開發過程中使用的任何東西都應該列在devDependency下。在這個例子中,一旦WebPack完成文件捆綁,我們不再關心WebPack,因爲它不是最終編譯文件的一部分。

--save-dev的:這是你的應用程序中使用,如愛可信,反應,Vue公司或圖表一切 - 即開發過程中使用,如單元測試框架或捆紮機等

--save什麼。 JS等

+0

*因爲它是您應用程序的重要資產* - 我不明白。這些模塊不會被我的應用程序在JS包之外使用。捆綁包和HTML文件可以存放在CDN上,例如遠離我的開發服務器(或者服務於這些HTML和JS文件的服務器) – WoJ

+1

@WoJ您的應用程序能否在沒有WebPack的情況下運行?是的,它只是一個捆綁器,可以由Browserify或其他替代捆綁器代替。如果您的應用程序是React應用程序,它可以在沒有React的情況下運行嗎?不,你必須從頭開始重寫整個應用程序,這就是它爲什麼會存在的原因 - 保存 – Win

+0

我不知道React(名字旁邊),但我相信這是一個建立被動前端的庫(據我所知,Vue.js從React借了很多)。如果是這樣的話:React應用程序是否可以從CDN提供,也就是說,它是否僅由HTML,JS和CSS文件組成,而沒有後端?如果是這樣 - 它不需要坐在'--save'中,因爲當運行應用程序時,模塊永遠不會被直接訪問(只能通過webpack生成的JS包) – WoJ

相關問題