npm

npm: 包管理工具,nodejsjavascript

https://www.w3cschool.cn/aqjtn/aqjtn-w9m825q9.htmlhtml

npm比Node.js更频繁地发布,所以要在命令行上安装最新的稳定版npm,请运行:适用稳定版就好java

npm install npm@latest -g

 更新到nextnpm 发行版,请在命令行上运行: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

清理缓存

npm cache clean --force

相关文章
相关标签/搜索