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

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

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

  在这里,我们可以看到所有全局安装的工具,如webpack、babel-cli等等。

  全局安装在命令行中的任何地方都是可以直接调用的。因为安装之后,我们可以看到如下所示:

  这里是全局安装了的babel和webpack,可以看到在根目录下都有cmd后缀的文件,通过这些文件,我们就可以直接在命令行中使用了。 如使用 babel --version、   babel-doctor --version等等都是有效的,且不管你是在哪个目录文件下运行的。 

  

  但是局部安装并不是这样,往往是在一个项目中安装之后装入 ./node_nodules 下面, 然后在项目中,我们可以使用 require 等方式引入。这样的局限在于,只能是在本项目中使用,而webpack和babel这样的工具可以在各种情况、各种项目中使用。引用方式如下:

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

  引入之后我们保存到了gulp和less中,这样,我们就可以继续使用他们了。

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

  

  为什么已经全局安装了,还需要本地安装呢? 

  1、仅仅是全局安装够用吗?

  通常情况下的引入模块是分为两种来寻找的,一种就是全局模块,通过NODE_PATH下去寻找;还有一种就是通过./node_modules去寻找。 如果在项目中,我们希望使用require来表现这种明显的依赖关系,那么我们就必须使用安装来进行require,当然也是可以将全局安装的文件复制过来,但是这是非常麻烦的。 或者是使用..、.、/等这种相对或者绝对的方式来引入,这些无疑都是比较麻烦的,所以本地安装不够用。

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

  2、本地安装的重要性。

  因为我们需要的包可能有十个,他们之间相互依赖的,如果我们使用全局包,那么每次包的升级、更新等就会影响你的多个项目,那么依赖关系就会被破坏,所以使用本地安装有利于不同项目之间的独立性。

时间: 2024-08-04 20:48:38

npm全局安装和局部文件安装区别的相关文章

更改npm全局模块和cache默认安装位置

来源于:http://blog.csdn.net/friendan/article/details/51736231 1.因为我安装的Node.js自带了npm,所以在nodejs文件夹里面新建以下两个目录:node_global node_cache 2.启动CMD依次执行以下两条命令npm config set prefix "XXX\nodejs\node_global"npm config set cache "XXX\nodejs\node_cache"

npm全局模块卸载及默认安装目录修改

卸载全局安装模块  npm uninstall -g <package> 卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:npm ls npm的指令还是要多看英文文档,如https://docs.npmjs.com/. 查看所有全局安装的模块 npm ls -g查看npm默认设置(部分) npm config ls查看npm默认设置(全部) npm config ls -l 那么如何修改该路径呢? 使用命令 npm config set prefi

vue引入全局组件和局部组件的区别以及全局注册公共函数

一,先看看全局组件的引用,就拿最常用的全局的暂无数据来举例,看看全局的是如何实现的. Step1,首先在components创建一个公共的目录,NoDatas目录里边包含index.vue和index.js,index.vue用来写公共的页面,index.js用来导出这个组件. <template> <!-- NoDataWords 可以灵活控制每个页面显示的内容 --> <!-- NoDataHeight 可以灵活控制每个页面的高度 --> <!-- 如果你的页

C#全局钩子和局部钩子记录

源自:https://blog.csdn.net/programvae/article/details/80292076 最近碰巧要使用键盘钩子,于是在网上搜索了一番,发现大多数博客的文章都是雷同的,根本就没有讲清楚全局钩子和局部钩子的区别,于是特开一贴,讲全局钩子和局部钩子捋一捋.也供后面的人学习.    因为大部分应用都应该采用局部钩子,所以我这儿使用的是局部钩子,而全局钩子的例子网上到处都是.    大部分网上参考文章都只是展示了全局钩子的写法,而线程钩子的写法和介绍相对少一些,特别是关键

vue 组件 全局注册与局部注册的方法

全局注册 html部分 <div id="e1"><name1></name1></div> script部分 <script type="text/javascript"> Vue.component('name1', { template: '<div>我是效果</div>'})   //定义全局模板        例如 Vue.component(tagName, option

CentOS安装JDK1.7设置环境变量及profile和bashrc文件的区别

1.查看当前系统中是否装有JDK(通常CentOS中默认安装OpenJDK) # java –version 如果存在OpenJDK需要先卸载: # rpm -qa|grep jdk 或 rpm -qa|grep java java-1.6.0-openjdk-1.*** java-1.7.0-openjdk-1.*** # rpm -qa|grep gcj java-1.*** libgcj-*** # yum -y remove java java-1.6.0-openjdk-1.*** #

修改npm全局安装模式的路径

在正式写此文章之前,我得说一点血泪史. 刚学nodeJS不久,很纳闷为什么全局安装的模块在 'node安装目录/node_modules‘ 中没找到!后来仔细看了下安装成功后的信息,才发现原来是自动安装在C盘了,天啊,C盘肯定不能来放这些东西的啦,于是呢就上网百度了一下. 方法一:(百度到的,不过对我无效....) 打开 ’nodejs安装目录/node_modules/npm/.npmrc‘  ,修改此文件为: prefix = G:\nodejs\npm_global_modules 好了,

windows系统下nodejs安装、环境配置及删除NPM全局配置

nodejs安装及设置NPM全局路径 删除NPM全局路径配置 一.nodejs安装及设置NPM全局路径 第一步:下载安装文件 下载nodejs,官网:http://nodejs.org/download/,我这里下载的是node-v8.4.0-x64.msi,如下图 第二步:安装nodejs 下载完成之后,双击"node-v0.10.28-x86.msi",开始安装nodejs,自定义安装在D:\Program Files\Nodejs下面. 在cmd控制台输入:node -v,控制台

修改 npm 全局安装目录

我的电脑系统盘只有 64 G,空间比较紧张,需要节约系统盘的空间占用. 所以 npm 全局 module 不易安装到默认路径下. 如何设置呢? - 编辑 npm 配置 npm config edit - 添加.修改 prefix 的值,指向新的路径,如: prefix=E:\Program Files\npm-global 除此之外,还要设置 npm cache 目录: - 查看 cache 现在的目录: npm config get cache - 重新编辑 cache 目录 npm conf