实习打怪之路:nodejs中的npm全局安装和局部安装的意思,npm中的全局安装和局部安装的区别

86 篇文章 21 订阅
6 篇文章 0 订阅

在使用nodesjs的包管理器npm时,会有全局安装和局部安装,这两个到底是啥意思?对于初学者来说,会一头雾水,下面对其进行解释:

目录

1、全局安装:

(1)、局部安装

( 2)全局安装后安装到哪儿了?

(3)、全局安装后,能干啥?

2、局部安装(本地):

(1)、局部安装

(2)、局部安装到哪儿了?

(3)、局部安装能干啥?

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

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

(2)、本地安装的重要性。


1、全局安装:

(1)、局部安装

        所谓全局安装,是指把模块安装到操作系统上,所谓的全局是指操作系统,因为,安装到操作系统后,整个计算机都可以使用了,所以,叫作全局。如:npm install webpack -g。就是全局安装webpack,其中,参数-g就是global的意思。

( 2)全局安装后安装到哪儿了?

     全局安装完成后,一般会安装到AppData目录下,

      如:我的计算机是:C:\Users\Administrator.PC\AppData\Roaming\npm。

      每个人的计算机是不同的,主要的不同是:c:\users\Administrator.PC。users目录是汉字"用户"的目录,Administrator.PC,是你的用户,有的人的是“Administrator”。

        假如,安装的是gulp,那么就会在C:\Users\Administrator.PC\AppData\Roaming\npm目录下有一个gulp.cmd(这个文件就是在命令行里输入gulp命令对应的文件,如:gulp -v),在C:\Users\Administrator.PC\AppData\Roaming\npm\node_modules目录下有一个gulp的文件夹,这个文件夹里是所有gulp相关的js文件。

      假如,安装的是webpack,那么就会C:\Users\Administrator.PC\AppData\Roaming\npm目录下有一个webpack.cmd(这个文件就是在命令行里输入webpack命令对应的文件,如:webpack -v),在C:\Users\Administrator.PC\AppData\Roaming\npm\node_modules目录下有一个webpack的文件夹,这个文件夹里是所有webpack相关的js文件。

这里写图片描述

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

(3)、全局安装后,能干啥?

        全局安装的目的是,在命令行里可以直接运行(当然需要配置环境变量,如果不会配置环境变量,我最后一步附上了)。如:我们可以直接输入gulp -v 或者webpack -v。

 

2、局部安装(本地):

(1)、局部安装

         所谓局部安装?局部的意思是只针对当前项目(相当于局部变量之于函数一样)。

         如:npm install webpack --save-dev,

(2)、局部安装到哪儿了?

         这个一般大家都知道,局部安装后,就是把所有需要安装的js文件从互联网上拷贝到了你的项目文件夹下的node_modules文件夹下,为了让本项目中可以使用安装后的js文件的代码功能。

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

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

(3)、局部安装能干啥?

      局部安装的目的就是在项目中可以使用node_modules文件夹下js文件的代码。

 如: var gulp = require("gulp");//这句引入的gulp.js文件就在本项目中的node_modules目录下的gulp文件夹下的bin下。

     如: var webpack = require("webpack");//这句引入的webpack.js文件就在本项目中的node_modules目录下的webpack文件夹下的bin下。

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

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

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

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

(2)、本地安装的重要性。

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

参考原文链接:https://blog.csdn.net/u013594477/article/details/79861404

参考原文链接:https://blog.csdn.net/jiang7701037/article/details/80706920

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值