npm 本地安装,全局安装,本地依赖,开发依赖的区别

全局安装与本地安装

一、全局安装:

npm install -g//(这里-g是-global的简写)

通过上面的命令行(带-g修饰符)安装某个包,就叫全局安装。

安装位置:通常全局包安装在node目录下的node_modules文件夹。

可以通过执行下面几条命令查看node、npm的安装目录和全局包的安装目录。

which node//查看node的安装目录

which npm//查看npm的安装目录

npm root -g//查看全局包的安装目录

npm list -g --depth0//查看全局安装过的包

二、本地安装:

npm install (后面可以加几种修饰符,主要有两种--save-dev和--save)

通过上面的命令行安装某个包,就叫本地安装。

安装位置:包安装在你当前项目文件夹下的node_modules文件夹中。



三、开发依赖和生产依赖

顺着上面讲到的本地安装,本地安装有两种主要的安装方式:

保存到开发依赖(devDependencies): npm install <pageName> --save-dev

保存到生产依赖(dependencies): npm install <pageName> --save

"开发依赖"顾名思义在开发环境中用到的依赖,"生产依赖"在生产环境中用到的依赖。那么这里又延伸出个问题什么是开发环境、什么是生产环境?

1、开发环境和生产环境

【开发环境】:指的是你的项目尚且在编码阶段时的环境。你在代码可能还有各种console.log()、注释、格式化等。

【生产环境】:指的是你的项目已经完成编码,并发布上线可供用户浏览的阶段时的环境。代码可能经过了压缩、优化等处理。

这些概念其实并没有一个很明确的定义,接下来我们举例个场景,将"开发环境"、"生产环境"和上面的"开发依赖"、"生产依赖"联系起来就会比较容易理解的了。引入html中。但这有个不方便的地方,我们每次进行一个项目的时候就得手动复制这个jQuery文件到我们的项目中,如果想要换个版本又得官网上下载、随着项目越来越多。用到的插件、库也随之越繁杂...这样会造成自家用的插件管理繁琐的问题。因此就出现了npm(包管理工具)你需要用到什么,直接通过一条命令行就可以将想要的插件下载下来,并直接引入到项目中,目前几乎所有的js插件都能在npm上直接下载。

2、生产依赖

回到环境和依赖话题,我们下载的jQuery,在开发时参与源码编写,在发布上线的生产环境中也是需要它的。不仅在开发环境编写代码时要依赖它、线上环境也要依赖它,因此将它归类为"生产依赖"。

安装时执行npm install jquery --save,它就会被记录在package.json的dependencies。

当进行代码打包时,会将这里的jQuery打包入我们的项目代码中。

3、开发依赖

接着,假如我们用gulp对html进行压缩,我们通常会用到一个插件gulp-htmlmin。我们只希望它把html压缩完就ok了,并不希望它融入我们的项目代码中,即只存在于开发环境,因此把他归类为"开发依赖"

安装时执行npm install gulp-htmlmin --save-dev它就会被记录在package.json的devependencies下。

当进行代码打包时,不会将这里的gulp-htmlmin插件源码打包入我们的项目代码中。


四、本地安装和生产依赖的区别(有疑问)

本地安装时将模块写入package.json中:

[npm install xxx]安装但不写入package.json;

[npm install xxx --save] 安装并写入package.json的"dependencies"中

[npm install xxx --save-dev]安装并写入package.json的"devDependencies"中

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容