简介在学习Node.js之前,我们需要了解什么是npm,npm是一个可以联网共享模块仓库的命令工具。可以登录并发布自己的模块。同时,它可以从网上下载需要的模块,还可以执行内置脚本、启动项目、测试代码等操作。CLI命令npminit初始化npm项目npminit-fpackage.json已经存在,强制初始化npminit-y直接初始化,跳过交互输入npmls根据package.json查询模块状态npmls--devonlyshowdevDependenciesnpmls--productioin只显示依赖npmls--parseabledirectoryform显示npminstall添加依赖模块到npm项目npminstall-gglobalinstallationmodulesnpminstall-Por-S=>npminstall--savenpminstall-D=>npminstall--save-devnpminstall@=>npminstallvue@2.5.16npminstallurl=>https://github.com/vuejs/vue/archive/v2.5.16.tar.gz或https://github.com/vuejs/vue/tarball/v2.5.16npminstall[<@scope>/]@=>privatemodulenpminstallmoduleimportalgorithm如果安装了模块A,模块A依赖B,模块B依赖C,目录在node_modules|----A|----B|----C下如果安装了模块A,则模块A依赖模块B和模块C@1、模块B依赖模块C@2,则目录在node_modules|----A|----B|----C@2|----C@1下npmuninstall取消模块安装npmuninstall-g取消全局安装npmuninstall-S=>npmuninstall--savenpmuninstall-D=>npmuninstall--save-devnpmversion项目模块版本号管理npmversion查看各个版本项目的模块依赖于npm版本major主版本升级,如1.0.1=>2.0.0npmversionminor次要版本升级,如2.0.0=>2.1.0npmversionpatchrevision版本升级,如2.1.0=>2.1.1npmversionpremajorpre-majorversion,例如2.1。1=>3.0.0-0npmversionpreminorpre-minorversion,如3.0.0-0=>3.1.0-0npmversionpreminorpre-fixedversion,如3.1.0-0=>3.1.1-0npm版本[主要|minor]会做一次gitcommit提交,并且会标记一个taggittag-av版本号package.json介绍package.json是npm仓库的描述文件,包括项目依赖、脚本执行、版本号、依赖环境等.项目名称版本版本号main当前npm库入口文件package.json格式如下{"name":"npm-exmaple","main":"index.js"}importnpm-exmaplemodulerequire('npm-例子');//实际导入的文件是npm-example/index.jsrequire('npm-exmaple/lib/utils');//导入npm-example/lib/utils.jsscriptsnpm的脚本可以写shell命令,同时自动将node_modules/.bin添加到$PATH使用npmrun[task]执行{"scripts":{"start":"NODE_ENV=production./bin/www","dev":"nodemonapp.js","test":"mocha"}}依赖而devDependencies项目部署环境中需要引用的模块一般放在dependencies中,比如express、axios等,测试环境、开发环境、编译环境需要的模块一般放在devDependencies中,如果webpack,mocha,babel-core{"dependencies":{"express":"^4.16.0","axios":"0.17.1"},"devDependencies":{"webpack":"3.10.0","mocha":"^5.1.1","babel-core":"6.26.0"}}bin模块执行脚本,如果当前模块暴露了一个命令,比如node-bin,那么在模块安装的时候,node-bin执行文件将被传递到$prefix/bin或node_modules/.bin{"name":"node-bin","bin":"./cli.js"}or{name:"node-example","bin":{"node-bin":"./cli.js"}}.npmrc.npmrc读取当前项目下的命令/path/to/my/project/.npmrc$HOME/.npmrc$PREFIX/当前用户下的etc/npmrc配置目录,使用npmconfiggetprefix获取$PREFIX/path/to/npm/npmrc与npm同级,使用whichnpm获取npm路径常用.npmrc关键设置#prefix#http请求代理serverproxy=#https请求代理服务器https-proxy=#no-proxy不使用代理域名no-proxy[]='domain1'#npm远程仓库地址registry=https://registry.npm.taobao.orgnpm使用说明和配置介绍,新增content相关资料后续会不断补充。npm官方文档package.json文件