npm全局安装和局部文件安装区别

全局安装每每是安装一个工具,他不是安装在一个文件夹下,而是安装在某个全局环境下,如目前个人安装路径是:node

C:\Users\cvter\AppData\Roaming\npm

   在这里,咱们能够看到全部全局安装的工具,如webpack、babel-cli等等。 webpack

  全局安装在命令行中的任何地方都是能够直接调用的。由于安装以后,咱们能够看到以下所示:web

  这里是全局安装了的babel和webpack,能够看到在根目录下都有cmd后缀的文件,经过这些文件,咱们就能够直接在命令行中使用了。 如使用 babel --version、   babel-doctor --version等等都是有效的,且无论你是在哪一个目录文件下运行的。 npm

 

 

  

  可是局部安装并非这样,每每是在一个项目中安装以后装入 ./node_nodules 下面, 而后在项目中,咱们可使用 require 等方式引入。这样的局限在于,只能是在本项目中使用,而webpack和babel这样的工具能够在各类状况、各类项目中使用。引用方式以下:gulp

var gulp = require('gulp');
var less = require('gulp-less');

  引入以后咱们保存到了gulp和less中,这样,咱们就能够继续使用他们了。babel

 

 

  本地安装通常是 npm install webpack或者npm install webpack --save 或者 npm install webpack --save-dev等等,他们都是全局安装,区别仅在因而否将依赖存入dependencies以及devdependencies文件中去。less

  

  为何已经全局安装了,还须要本地安装呢? 

  一、仅仅是全局安装够用吗?工具

  一般状况下的引入模块是分为两种来寻找的,一种就是全局模块,经过NODE_PATH下去寻找;还有一种就是经过./node_modules去寻找。 若是在项目中,咱们但愿使用require来表现这种明显的依赖关系,那么咱们就必须使用安装来进行require,固然也是能够将全局安装的文件复制过来,可是这是很是麻烦的。 或者是使用..、.、/等这种相对或者绝对的方式来引入,这些无疑都是比较麻烦的,因此本地安装不够用。ui

  另外,咱们也许在不一样的项目中所须要的模块的版本是不一样的,或者可能对某些模块进行从新命名,这就致使一个项目的重命名影响全局,这是不划算的。命令行

  二、本地安装的重要性。

  由于咱们须要的包可能有十个,他们之间相互依赖的,若是咱们使用全局包,那么每次包的升级、更新等就会影响你的多个项目,那么依赖关系就会被破坏,因此使用本地安装有利于不一样项目之间的独立性。

相关文章
相关标签/搜索