全局安装与本地安装
一、全局安装:
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"中