npm包管理工具
npm是包管理工具,它更加是node.js平台的包管理工具,npm就像后端的maven一样管理包,而npm是下载上传前端的包的。需要使用npm包管理工具,首先得下载这个工具,node.js中集成了npm包管理工具,所以先去node.js官网去下载安装node.js,安装完成后,我们用npm初始化一个项目
1.npm初始化项目:
创建一个文件夹,打开命令行工具,使用npm init -y(这里-y指的是所有选项选择默认值)初始化一个项目,如下图左侧是文件夹,右侧是npm初始化项目命令行截图。
2.初始化完成以后,生成了package.json文件,这个文件是包的配置文件,对其中的配置,如果需要我们可以自己根据需求修改。
3.现在我们可以根据自己项目所需要的模块进行指定版本的模块安装,比如我们需要用到jquery
我们就在命令行中输入npm install jquery 那么npm就会自动下载最新的jquery包到这个项目文件夹下面了,也可以使用npm install [email protected]这样的方式来指定某个模块的固定版本。
4.安装完成后,我们看项目文件夹下面出现了多了以下标红的文件和文件夹
在该目录下出现一个 node_modules 文件夹 和 package-lock.json node_modules 文件夹用于存放下载的js库(相当于maven的本地仓库) package-lock.json 是在 npm install 时候生成一份文件。 用以记录当前状态下实际安装的各个包的具体来源和版本号。 重新打开 package.json 文件,发现刚才下载的 jquery.js 已经添加到依赖列表中了.
上面我们使用了npm install jquery安装了jquery模块,可以看到jquery安装到开发依赖(dependencies)中去了,实际的项目开发中,我们安装模块的时候,有两种安装模式,一种是安装到开发依赖(devdependencies)一种是安装到生产依赖(dependencies),这两种安装的不同方式在于,安装在开发依赖的东西,在项目的部署打包的时候不需要,它只是在开发过程中用到了,比如说"eslint"格式校验(这个只是帮助在开发过程中监测有没有格式问题)或者“webpack”打包工具(在开发完成后,我们打包好项目,在项目部署的时候,用的是webpack打好的包部署上线所以不需要在生产依赖中使用),而生产依赖是我们打包部署项目的时候,需要用到的东西,比如,我们项目是用jquery写的,没有这个jquery项目运行会出错,所以就需要把依赖安装到生产依赖中去,使用npm安装依赖的时候,怎么区分或者说怎么通过命令将他们安装到不同的依赖中去呢?下面举个例子
1 安装到生产依赖(dependencies) npm install jquery --save
2 安装到开发依赖(devdependencies)npm install eslint --save-dev
如果不写-dev--save或--save,则默认安装到生产依赖中去。
不管是生产依赖还是开发以来,都安装到项目的node_modules目录下,
当运行npm install 初始化项目时候,会将开发依赖和生产依赖中的模块节点下的资源都下载到项目目录node_modules中
而当运行npm install --production 或者注明NODE_ENV变量为production时候,dependencies中依赖的模块会自动下载到node_modules目录中去,而devDependencies节点下的模块不会被下载到node_modules目录中去。
总结:
npm install 初始化项目安装所有依赖,
npm install --production 安装生产依赖
npm install --save moduleName(模块名) 安装模块到生产环境依赖
npm install --save-dev moduleName(模块名) 安装模块到开发环境依赖
最后,如果要卸载模块,使用命令npm uninstall 模块名