博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
npm全局安装和局部文件安装区别
阅读量:5291 次
发布时间:2019-06-14

本文共 1299 字,大约阅读时间需要 4 分钟。

 

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

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文件中去。

  在《http://www.cnblogs.com/zhuzhenwei918/p/6360226.html》这篇文章中,我们发现,先使用了全局安装webpack,然后在下面使用babel时又进行了本地安装。那么

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

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

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

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

  2、本地安装的重要性。

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

 

转载于:https://www.cnblogs.com/zhuzhenwei918/p/7228915.html

你可能感兴趣的文章
elk报错解决
查看>>
centos6更改时区
查看>>
struts中请求数据自动封装
查看>>
C# 高斯消元项目运用
查看>>
WUST 设计模式 实验一 单例模式的应用
查看>>
Web service(一)
查看>>
Github为什么没有记录你的Contributions
查看>>
<php>Ajax基本格式
查看>>
mybatis中的多条件查询
查看>>
C# WebBrowser 抓图获取网页验证码
查看>>
Linux 终端输入保存到一个文件中
查看>>
未加载opencv_world330.pdb
查看>>
Java排序算法(三):直接插入排序
查看>>
iOS 开发百问(5)
查看>>
删除单链表中某一个值
查看>>
第五周学习进度
查看>>
事务的应用
查看>>
Excel Vlookup多条件查询 , 列转行
查看>>
浅谈JS继承
查看>>
2018-2019-2 20175224 实验一《Java开发环境的熟悉》实验报告
查看>>