设置开发环境(node_modules复制)

时间:2016-04-24 12:51:38

标签: javascript node.js typescript angular

(我是Actionscript开发人员,最终迁移到JavaScript并正在学习TypeScriptAngularJS 2。如果这个问题过于愚蠢/天真,请告诉我。我会删除它)

我正在浏览Angular 2 tutorials并且一切都很好,但我想知道如何通常建立一个没有重复的开发环境,例如“node_modules”和“typings”目录。我知道教程本身要完整,所以有重复。我也明白了,例如,下面这一行是使用相对于项目文件夹的引用,所以它可以指向其他地方。

是否存在避免重复节点模块的“最佳实践”?我问,因为“node_modules”目录是145 mb。

import {Component} from 'angular2/core';

enter image description here

1 个答案:

答案 0 :(得分:2)

在每个项目中重复的{p> node_modules是设计的 - 拥有package.json文件和相应的依赖文件夹的想法是为了让您的项目自给自足/隔离并且不依赖于它正在使用的环境。

那就是说,你可以使用npm install [package] -g命令全局安装NPM模块,但是这里有一个实际的例子,为什么你不应该 - 说你有一个正在进行的项目,使用旧版本的Angular 2,并且您希望使用最新功能启动第二个项目。如果您正在使用全局Angular安装,则无法做到这一点;更新版本会为每个使用它的项目更新它(这可能会破坏你的旧应用程序)。如果每个项目都有单独的安装,则它们的版本可以不同而不会引起任何问题。

在将项目提交到版本控制时,这也很方便 - 如果您的整个应用程序依赖于全局安装的模块,并且您(或贡献者)想要在另一台机器上进行操作,则他们必须通过并安装每个单独的依赖项都是手动的,以便环境与最初开发的环境匹配。相比之下,将package.json中列出的依赖项和您的node_modules文件夹从repo中排除 - 它们只需运行{{ 1}}和NPM将为它们安装所有相关模块。

我承认npm install的大小有时可能会过大,我希望他们能在某些时候对此进行优化 - 但我不认为这是一个很好的理由抛弃所有的好处,让它分开给你!