怎样上传一个包

手把手教你上传一个包

1.什么是包?

Node.js 中的第三方模块又叫做包,由第三方个人或团队开发出来的,免费供所有人使用

2.包的分类

  • 项目包
    – 开发依赖包(存放于devDependencies目录下)
    –生产依赖包(存放于dependencies目录下)
  • 全局包

3.安装包

npm i 包名
npm i 包名 -g //安装全局包
//查看全局包的安装位置
npm root -g

通过命令行来使用  ==>全局安装
通过require()引入使用  ==> 项目包
也可以参考官方提供的使用说明

4.发布一个自己的包

首先得知道包的规范
包由三部分组成:
1.包必须以单独的目录存在
2.*目录下必须包含package.json管理配置文件
3.package.json中必须包含name version main 三个属性,分别记录包名,版本号,包的入口

注册 npm 账号

① 访问 https://www.npmjs.com/ 网站,点击 sign up 按钮,进入注册用户页面
② 填写账号相关的信息:full Name、Public Email、Username、Password
③ 点击 Create an Account 按钮,注册账号
④ 登录邮箱,点击验证链接,进行账号的验证
如果不验证邮箱执行后面程序的时候会报错

初始化包的基础结构

新建myselfpackage文件夹,作为根目录
在myselfpackage文件夹新建三个文件
打开终端,输入 npm init -y 命令 ,自动创建一个package.json文件

  • package.json (包管理配置文件)

  • index.js (包的入口文件)

  • README.md (包的说明文档)
    怎样上传一个包

初始化 package.json 配置文件’

{
“name”: “myselfpackage”,
“version”: “1.0.0”,
“description”: “”,
“main”: “index.js”,
“scripts”: {
“test”: “echo “Error: no test specified” && exit 1”
},
“keywords”: [],
“author”: “”,
“license”: “ISC”
}

在 index.js 中写入要实现的功能的方法

例如:格式化日期

// 包的入口文件 index.js
 
// 定义格式化时间的函数
function dateFormat (dateStr) {
  const dt = new Date(dateStr)
 
  const y = padZero(dt.getFullYear())
  const m = padZero(dt.getMonth() + 1)
  const d = padZero(dt.getDate())
 
  const hh = padZero(dt.getHours())
  const mm = padZero(dt.getMinutes())
  const ss = padZero(dt.getSeconds())
 
  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}
 
// 定义一个补零的函数
function padZero (n) {
  return n > 9 ? n : '0' + n
}
 
// 向外暴露需要的成员
module.exports = {
  dateFormat
}
//测试代码
const itheima = require('./flightloong-tools/index')
 
// 格式化时间的代码
const dtStr = itheima.dateFormat(new Date())
console.log(dtStr) // 2020-06-23 01:16:57

在 index.js 中定义转义 HTML 的方法

// index.js
// 定义转义 HTML 字符的函数
function htmlEscape(htmlstr) {
  return htmlstr.replace(/<|>|"|&/g, match => {
    switch (match) {
      case '<':
        return '&lt;'
      case '>':
        return '&gt;'
      case '"':
        return '&quot;'
      case '&':
        return '&amp;'
    }
  })
}

划分不同的模块

  • 在 ayao-tools文件夹下创建一个src文件夹

  • 将格式化时间的功能,拆分到 src -> dateFormat.js 中

  • 将处理 HTML 字符串的功能,拆分到 src -> htmlEscape.js 中

  • 在 index.js 中,导入两个模块,得到需要向外共享的方法

  • 在 index.js 中,使用 module.exports 把对应的方法共享出去

编写文档说明

1.包根目录中的 README.md 文件,是包的使用说明文档。通过它,我们可以事先把包的使用说明,以 markdown 的格式写出来,方便用户参考
2.README 文件中具体写什么内容,没有强制性的要求;只要能够清晰地把包的作用、用法、注意事项等描述清楚即可

### 安装
​```
npm i flightloong-tools
​```

### 导入
​```js
const itheima = require('./flightloong-tools')
​```

### 格式化时间
​```js
// 调用 dateFormat 对时间进行格式化
const dtStr = itheima.dateFormat(new Date())
// 结果  2020-04-03 17:20:58
console.log(dtStr)
​```

### 转义 HTML 中的特殊字符
​```js
// 带转换的 HTML 字符串
const htmlStr = '<h1 title="abc">这是h1标签<span>123&nbsp;</span></h1>'
// 调用 htmlEscape 方法进行转换
const str = itheima.htmlEscape(htmlStr)
// 转换的结果 &lt;h1 title=&quot;abc&quot;&gt;这是h1标签&lt;span&gt;123&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;
console.log(str)
​```

### 还原 HTML 中的特殊字符
​```js
// 待还原的 HTML 字符串
const str2 = itheima.htmlUnEscape(str)
// 输出的结果 <h1 title="abc">这是h1标签<span>123&nbsp;</span></h1>
console.log(str2)
​```

### 开源协议
ISC
————————————————
版权声明:本文为CSDN博主「是阿瑶呀~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_61006976/article/details/120632621

将镜像切换到npm镜像

nrm ls
nrm use npm

在终端登录npm账号

npm login //然后输入自己的账号密码和邮箱

将包上传

npm publish

5.删除包

运行 npm unpublish 包名 --force 命令,即可从 npm 删除已发布的包

注意事项

  • npm unpublish 命令只能删除 72 小时以内发布的包

  • npm unpublish 删除的包,在 24 小时内不允许重复发布

  • 发布包的时候要慎重,尽量不要往 npm 上发布没有意义的包!

上一篇:C# 保存(新增、修改)


下一篇:CoMic: Complementary Task Learning & Mimicry for Reusable Skills