2016-04-24 65 views
1

(我的Actionscript開發商終於遷移到JavaScript和正在學習TypeScriptAngularJS 2。讓我知道如果這個問題太愚蠢/幼稚,我會刪除它)建立開發環境(node_modules重複)

我正在運行Angular 2 tutorials,一切都很好,但我想知道如何通常設置一個開發環境而不重複,例如「node_modules」和「typings」目錄。我知道這些教程希望自己完成,因此存在重複。我也明白,例如,下面的行是使用相對於項目文件夾的引用,以便它可以指向其他地方。

是否有避免重複節點模塊的「最佳做法」?我問,因爲「node_modules」目錄是145 MB。

import {Component} from 'angular2/core'; 

enter image description here

+1

你在說什麼重複? – charlietfl

+1

是需要爲每個項目 – charlietfl

+0

只需爲每個項目運行'npm install'或通過像yoeman這樣的工具使用種子應用程序來爲您安裝 – charlietfl

回答

2

node_modules在每個項目中被複制是通過設計 - 有package.json文件和相關的相應文件夾的想法是讓你的項目是自給自足/分離不依賴於它正在使用的環境。

這就是說,你可以可以安裝NPM模塊全局使用npm install [package] -g命令,但這裏有一個實際的例子,說明你爲什麼可能不應該--說你有一個正在進行的項目使用老版本的Angular 2,並且你想使用最新的功能開始第二個項目。如果您使用的是全局Angular安裝,則不可能;更新版本會更新每個使用它的項目(這可能會破壞您的舊應用程序)。如果每個項目都有單獨的安裝,則它們的版本可能會有所不同,而不會造成任何問題。

當您的項目提交到版本控制時,這也會派上用場 - 如果您的整個應用程序依賴於全局安裝的模塊,並且您(或貢獻者)希望在另一臺機器上使用它,則必須通過並請手動安裝每一個依賴項,以便環境與最初開發的環境相匹配。比較此問題,以便將package.json中列出的依賴項和node_modules文件夾排除在回購 - 它們只需運行npm install,NPM將安裝所有相關模塊爲他們。

我承認node_modules的大小有時可能會變得過大,我希望他們在某個時候優化它 - 但我認爲這不是一個很好的理由,因爲它可以讓所有的好處保持不同,從而帶給您!