一、npm是什么?
1、介绍
世界上最大的软件注册表,每周大约有30亿次的下载量,包含超过60万个package(代码块)。来自各大洲的开源软件开发者使用npm互相分享和借鉴,能够轻松跟踪依赖项和版本。
2、组成
三个部分: 网站、注册表 registry、命令行工具CLI
网站: 开发者查找包、设置参数以及管理npm使用体验的主要途径
注册表: 巨大的数据库,保存了每个包的信息
CLI: 通过命令行或终端运行
3、用处:
1)使程序适应我的应用,或按原样合并他们;
2)下载可独立使用的工具;
3)使用npx运行包而不下载;
4)随时随地与任何npm用户共享代码;
5)将代码限制为特定开发人员;组件虚拟团队;
6)管理代码和代码依赖项的多个版本;
7)更新基础代码时,可轻松更新应用程序;
8)发现解决同一难题的多种方法;
9)查找正在处理类似问题的其他开发人员
4、包package.json
由文件描述的文件或目录
5、模块node_modules require()
目录中可由Node.js函数加载的任何文件或目录
二、如何安装npm并管理npm版本
1、通过Node.js网站
OS X或Windows(务必安装LTS版本): https://nodejs.org/en/download/
Linux: https://nodejs.org/en/download/
可检查是否适用系统的更新版本:
https://github.com/nodesource/distributions
2、使用版本管理器安装Node.js和npm
节点版本管理器或nvm,将避免权限错误并解决更新Node.js和npm的复杂性,nvm能够轻松切换npm以及节点版本
苹果 macOS:
https://github.com/creationix/nvm/blob/master/README.md#installation
Windows: https://github.com/coreybutler/nvm-windows
Linux:
https://github.com/creationix/nvm/blob/master/README.md#installation
nvm学习网址:
https://github.com/nvm-sh/nvm/blob/master/README.md#usage
三、如何防止权限错误
1、通常在尝试全局安装包时发生错误,通常更改安装了npm目录可以避免此类错误
2、使用节点版本管理器重新安装(推荐)
3、更改npm的默认目录:开始之前备份计算机
mkdire ~/.npm-global // 为全局安装创建一个目录
npm config set prefix ‘~/.npm-global’ // 将npm配置为新的目录路径
export PATH=~/.npm-global/bin:$PATH // 打开或创建一个文件添加一下行
source ~/.profile // 返回命令行,更新系统变量
测试 sudo:npm install -g jshint
四、使用package.json
1、列出了项目所依赖的包;允许指定项目可以使用语义控制版本控制规则使用包的版本;使得构建可重现,易于与其他开发人员共享
2、要求
name => 全部小写;一个字,无空格;允许使用短划线和下划线。version =>形式为x.x.x;遵循semver规范
(https://docs.npmjs.com/getting-started/semantic-versioning)
3、创建:npm init / npm init --yes(获取默认值)
name:当前目录名称;
vesion:始终1.0.0;
deecription:自述文件中的信息;
main:始终index.js;
scripts:默认情况下创建一个空脚本test;
keywords:空;
author:空;
license:国际学习中心;
bugs;
homepage
4、项目所依赖的包
dependencies(生产)、devDependencies(开发和测试)
5、安装标志
npm install <package_name> --save (添加到dependencies);
npm install <package_name> --save-dev (添加到devDenpendencies)
五、本地包
1、本地包安装
自己的模块依赖于某个包,并通过Node.js的加载
npm install <package_name>
2、本地包更新
定期npm update [<package_name>]
3、本地包卸载
npm uninstall <package_name>
如需从文件中删除依赖 npm uninstall --save/–save-dev <package_name>
六、全局包
1、全局包安装
npm install -g <package_name>
2、全局包更新
npm uninstall -g [<package_name>]
3、了解哪些软件包需要更新
npm outdated -g --depth=0.
4、全局包卸载
npm uninstall -g <package_name>
七、如何发布和更新软件包
1、发布包
先查看npm的政策 -> 创建用户账户 -> 查看包目录 -> 发布
创建用户账户: 先创建npm注册表上的用户,使用从终端访问我的账户(npm adduser npm login)。
测试: 从终端查看是否登录(npm whoami),检查用户名是否已添加到注册表中:https://npmjs.com/~username
查看包目录: 查看内容(除非本地或文件忽略该目录 。Gitignore .npmignore),
查看package.json文件(为包选择唯一的名称),包括文档(readme.md)
发布: npm publish
2、更新包
更新程序包(更改package.json中的版本号):npm version <update_type>
再次允许发布:npm publish
八、如何使用作用域内包
1、作用域内包的名称是以@开头: @scope/project-name
2、每个npm都有自己的作用域:@username/project-name
可使用命令 npm init --scope=username
在.npmrc文件设置此选项 npm config set scope username
3、发布作用域内包是需要付费的,这个是公共作用域npm publish --access=public
九、如何使用dist标签标记包裹
添加标签:npm dist-tag add @ []
使用标记发布:npm publish [latest] --tag beta
使用标记进行安装:npm install latest 默认使用该标记
npm install @
十、如何从CLI更改配置文件设置
npm profile get
npm profile set
npm profile set fullname nori pat marsupial