npm其实是Node.js的包(代码模块)管理工具(package manager)。它的主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。
更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。否则,靠我们自己手动管理,肯定既麻烦又容易出错。
npm的背后,是基于couchdb的一个数据库,详细记录了每个包的信息,包括作者、版本、依赖、授权信息等。它的一个很重要的作用就是:将开发者从繁琐的包管理工作(版本、依赖等)中解放出来,更加专注于功能的开发。
(webstorm显示npm任务面板,右击package.json文件,选择show npm scripts)
1.npm help //查看npm命令列表
2.npm -l //查看各个命令的简单用法
3.npm config list -l //查看npm的配置
4.npm info //查看某个模块的具体信息(返回一个javascript对象)
5.npm list //列出当前项目安装的所有模块
6.npm stall
npm install <package name> 本地安装:将一个模块安装到当前项目的node_modules子目录
npm install -g <package name> 全局安装:将一个模块安装到系统目录中,各个项目都可以调用
npm install <package name> --force 不管模块是否安装过,强制重新安装
(补充:npm i 和 npm install的区别
npm i 仅仅是npm install 的缩写,实际使用的区别:1.用npm i安装的模块不能用npm uninstall卸载,用npm uninstall i才能卸载掉。2.用npm i会帮助检测与当前node版本最匹配的npm包版本号,并匹配出来相互依赖的npm包应该提升的版本号 3. 部分npm包在当前node版本下无法使用,必须使用建议版本 4. 安装报错时intall肯定会出现npm-debug.log 文件,npm i不一定
7.install命令可以使用不同参数,指定所安装的模块属于哪一种性质的依赖关系
-save :模块名将被添加到dependencies, 可以简化为参数 -S
-save-dev:模块名将被添加到devDependencies, 可以简化为参数 -D
npm i module_name -S = > npm install module_name --save 写入到 dependencies 对象 npm i module_name -D => npm install module_name --save-dev 写入到 devDependencies 对象 npm i module_name -g 全局安装
i 是install 的简写
-S
就是--save
的简写
-D就是--save-dev 这样安装的包的名称及版本号就会存在package.json的devDependencies这个里面,而--save会将包的名称及版本号放在dependencies里面。
我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,比如:
--save-dev
--save
在 package.json 文件里面提现出来的区别就是,使用 --save-dev 安装的 插件,被写入到 devDependencies 对象里面去,而使用 --save 安装的插件,责被写入到 dependencies 对象里面去。
那 package.json 文件里面的
devDependencies 里面的插件只用于开发环境,不用于生产环境,而 dependencies 是需要发布到生产环境的。
8.npm update [package name] //更新模块
9.npm uninstall [package name] //卸载已安装的模块