看了这个,你不可能还不会自定义npm包吧?

1,498 阅读3分钟

1.什么是包

包就是一个文件夹,用来管理模块和模块之间的各种关系

2.包的使用

npm install xxx 安装包

const xxx = require(xxx) 使用包

3.如何自定义包

1.package.json字段分析(了解)

name:包的名称,必须是唯一的,由小写英文字母、数字和下划线组成,不能包含空格

description:包的简要说明

version:符合语义化版本识别规范的版本字符串

  • 主版本号:当你做了不兼容的 API 修改

  • 子版本号:当你做了向下兼容的功能性新增

  • 修订号:当你做了向下兼容的问题修正

keywords:关键字数组,通常用于搜索

maintainers:维护者数组,每个元素要包含name、email(可选)、web(可选)字段

contributors:贡献者数组,格式与maintainers相同。包的作者应该是贡献者数组的第一个元素

bugs:提交bug的地址,可以是网站或者电子邮件地址

licenses:许可证数组,每个元素要包含type(许可证名称)和url(链接到许可证文本的- 地址)字段

repositories:仓库托管地址数组,每个元素要包含type(仓库类型,如git)、url(仓- 库的地址)和path(相对于仓库的路径,可选)字段

dependencies:生产环境包的依赖,一个关联数组,由包的名称和版本号组成

devDependencies:开发环境包的依赖,一个关联数组,由包的名称和版本号组成

2.自定义包的流程

新建一个包文件夹

文件夹中创建package.json文件(npm init -y)

配置一下package.json文件

这里我简单的配置一下

    {
  // 你的包的名字
  "name": "gt666",
  // 包的版本号
  "version": "1.0.0",
  // 包的描述信息
  "description": "test Local package",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  // 搜索包的关键名词
  "keywords": [
    "sandy",
    "gt",
    "test"
  ],
  // 作者(我觉得不填,就自动和你的npm账号的昵称绑定)
  "author": "",
  "license": "ISC"
}

初始化一个包入口js文件(main | index)

在包中编写业务逻辑代码

function test() {
  console.log('本地包建立成功');
}

// 导出
exports.test = test;

3.将包上传到npm官网

在npm官方注册账号 www.npmjs.com/

我手把手教你如何注册账号

显示这个界面就表示注册成功了

但是,还需要去你绑定的邮箱里面去进行确定注册

如果npm用的是淘宝的地址,需要把淘宝的地址切换为npm(因为我之前用的淘宝的镜像,所以要切换一下)

nrm ls
nrm use npm
nrm ls

在终端输入npm addUser绑定账号

npm addUser

在终端输入npm publish(绑定好了账号就可以上传了)

npm publish

去看看npm官网有没有上传成功

上传以后下载测试一下

npm install --sava-dev gt666

下载成功,来导入看能不能正常使用

const gt666 = require('gt666');
gt666.test()

来F12运行一下Node

最后,全部弄完把我们的npm源再切换回taobao哦,不然下次安装其他的时候就稍微有点卡

下期预告: 自定义全局包