npm: 包管理工具,nodejsjavascript
https://www.w3cschool.cn/aqjtn/aqjtn-w9m825q9.htmlhtml
npm比Node.js更频繁地发布,所以要在命令行上安装最新的稳定版npm,请运行:适用稳定版就好java
npm install npm@latest -g
更新到next
npm 的发行版,请在命令行上运行:node
npm install npm@next -g
注册用户git
在npm 官网注册一个帐户,邮箱验证后可直接进入用户控制台。npm
安装node 以后,会自带安装npm,经过如下命令能够登陆用户json
npm login
如下命令查看当前用户信息windows
npm whoami
npm profile get
其余相关没有看,主要仍是看如何使用npm 下载和使用模块,已经自定义包缓存
公共包:函数
npm install <package_name>
关于包:包是一个文件或目录由一个叫作package.json 文件描述的文件。
包能够只是某个用户或者组织的,称做范围包,能够是公共的或私有的。
模块:模块是任意的文件或目录,位于node_modules 目录下的,而且是能够经过require函数 加载的。
package.json 文件中必须由main字段
必须由一个index.js 文件,
必须由一个JavaScript的文件。
包的范围:
建立的包,能够与公共包或者其余组织的包同名,经过如下指令来肯定范围包
好比我的或者组织包:例如我的用户名是xxx
@xxx/package-name
对有组织我的建立包的范围,私有的状况下,组织包是组织中的成员能够访问和更改,公共状况下全部人可见可是只有组织内部成员可写,我的的范围包亦同。只是我的的私有包若是其余想更改必须又全部者受权。
package.json 文件:
必须包涵name 和version字段
{ "name": "my-awesome-package", "version": "1.0.0" }
Your Name <email@example.com> (http://example.com) 邮件与网站可选
建立一个默认的package.json 文件,打开终端,这里我的建立了一个node_cli 文件夹,而后在其中进行测试(安装好nodejs后,默认会增长node的环境变量)
npm init
根据只是建立json 文件输入相关信息,ok后查看。
默认package.json 文件
npm init -y
设置建立文件的默认选项,更改后,再次执行npm init -y 便可。
范围包package.json:
npm init --scope=@xxxx
建立包:
必填字段,其中main指定的index.js 是用来提供给其余使用你包的用户用来加载使用的。
建立一个index.js 文件,增长2行代码:导出一个函数对象,名称为printMsg
exports.printMsg = function() { console.log("This is a message from the demo package"); }
对有私有包和公共包,直接使用npm publish,对有范围包使用npm publish --access public
推送的时候通常公共包,名字都会有重复,若是提示没有权限通常都是由于名字已经被占用了,这时候更改一下名称便可,若是有你有钱可使用私有包,那么名称重复也是ok的。
包发布成功后,会给你注册的邮箱发送一封邮件。
测试安装:
建立一个测试文件夹,使用install 测试安装发布的包
npm install <your-module-name>
安装完毕后,能够看到建立的文件,与以前上传的包文件信息。
测试,进入node调试器。
输出正常。
readme文件:显示在包说明中,效果以下,关于发布私有包和范围包,此处不表(由于没买)
更新包:
npm version patch // 版本信息+1
npm publish
包依赖:在package.json 文件中指定依赖,在下载包的时候回下载相关依赖模块。
两种状况:生产环境与开发环境。
开发环境:
--save-dev
生产环境
--save-prod
使用命令可直接添加,或者直接编辑也可。效果以下,建议直接使用命令,使用最新版本,而后提交更新试试。
tips:
若是是开发环境依赖,那么当你提交到npm后,其余用户下载后不会下载相关依赖。
只有生产依赖其余用户才会下关相关依赖的模块。--save-prod 是可选的,若是不使用此参数,默认也会下载,可是package.json 文件中不会显示,若是你是要本身开发一个模块,而且开源最好加上此参数。
关于版本的语义化(也就是版本号表明的意思)npm的建议。
第一个版本1.0.0,bug修复使用最后一个字1.0.1 新功能 1.1.0,大版本跨越 2.0.0
标记:tag,相似git中的tag,由于版本号看着比较模块,要么每次都要去看说明文件,固然看说明文件是必须的,可是加上tag 的话,会更清晰。
npm publish --tag <tag>
效果:
给过去的版本添加tag
npm dist-tag add <package-name>@<version> [<tag>]
更新指定版本号的包
npm version <update_type>
模块安装:
npm install package // 若是是范围包 @xxxxx/package-name
使用tag安装
npm install example-package@beta
全局下载安装:-global
npm install -g <package_name>
更新包:
npm update //或者能够 npm install
测试是否有更新
npm outdated
更新全局包
// 检查 npm outdated -g --depth=0 // 单个 npm update -g <package_name> // 所有 npm update -g
卸载包和依赖:
删除项目包:
npm uninstall <package_name>
// 范围
npm uninstall <@scope/package_name>
删除依赖
// 公共 npm uninstall --save <package_name> // 范围 npm uninstall --save <@scope/package_name> // 若是是开发依赖 npm uninstall --save-dev package_name
检查模块依赖,或者直接打开文件夹查看(windows)
//w dir node_modules //u ls node_modules
全局卸载:-g
// 公共 npm uninstall -g <package_name> // 范围 npm uninstall -g <@scope/package_name>
关于测试报告,我的没看,真有小伙伴要开发开源模块的能够去看看。
还有其余一些好比签名之类的。
查看模块版本
http://www.javashuo.com/article/p-hqffwjnv-hb.html
清理缓存