為什么要開發屬于自己的包?
我們在學習和作業中所敲的代碼,幾乎每個專案、資料以及檔案都有一定的共性,所謂共性,就是有很多重復的部分,在我們接收一個新專案時,幾乎都是從零開始,一些非功能性的需求建設占據了整個專案的大多時間,比如復用率很高的增刪改查功能,如果我們可以在專案搭建的程序中提煉代碼,將這些公共可共用的代碼梳理出來,結合實際進行提煉與打磨,吃透所學的知識點,不斷積累的同時提高我們的學習效率,
【這萬里長征提升自己的第一步,就從開發一個屬于自己的包開始吧!】
如何開發屬于自己的包?
一、首先我們來認識一下,什么是規范的包結構?
-
一個規范的包,它的組成結構,必須符合以下 3 點要求:
-
包必須以單獨的目錄而存在
-
包的頂級目錄下要必須包含
package.json這個包管理組態檔 -
package.json中必須包含name,version,main這三個屬性,分別代表包的名字、版本號、包的入口
-
-
注意:以上 3 點要求是一個規范的包結構必須遵守的格式,關于更多的約束,可以參考這個網址
https://yarnpkg.com/zh-Hans/docs/package-json
二、確定需要實作的功能
格式化日期 (這里以格式化日期簡單舉例)
//1.匯入自己的包
const huahua=require('myselfbag')
//2.格式化日期
const dt=huahua.dateFormat(new Date())
//3.輸出轉換后的日期格式
console.log(dt)
三、初始化包的基礎結構
-
新建 myselfbag 檔案夾,作為包的根目錄
-
在 myselfbag 檔案夾中,新建如下三個檔案:
-
package.json(包管理組態檔) -
index.js(包的入口檔案) -
README.md(包的說明檔案)
-
四、初始化 package.json 組態檔
在專案根目錄下通過npm init -y命令快速創建package.json 管理組態檔:
{
//包名
"name": "myselfbag",
//版本號
"version": "1.0.0",
//包的簡短描述資訊
"description": "提供格式化時間相關功能",
//包的入口(詳見代碼下方解釋)
"main": "index.js",
//關鍵字
"keywords": [
"dateFormat",
],
//遵循的開源許可協議
"license": "ISC"
}
package.json 檔案中 main 的作用:
在匯入一個檔案的時候,如果沒有指定一個特定的檔案,但是卻能夠得到某個包的回傳內容,這是因為 Node 在使用 require 匯入某個路徑的時候,發現沒有具體的檔案,就會看這個路徑下查看是否有 package.json 這個檔案,如果有,則查看是否有 main 這個屬性,如果有,則指定 main 屬性對應的檔案作為要執行的檔案
五、在 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
}
六、測驗代碼
在專案根目錄外創建一個text.js檔案測驗代碼是否可以順利執行
// 測驗代碼
const huahua= require('./myselfbag/index')
// 格式化時間的代碼
const dtStr = huahua.dateFormat(new Date())
console.log(dtStr)
七、撰寫包的說明檔案
-
包根目錄中的
README.md檔案,是包的使用說明檔案,通過它,我們可以事先把包的使用說明,以markdown的格式寫出來,方便用戶參考 -
README檔案中具體寫什么內容,沒有強制性的要求;只要能夠清晰地把包的作用、用法、注意事項等描述清楚即可 -
我們所創建的這個包的
README.md檔案中,會包含以下 6 項內容-
安裝方式
-
匯入方式
-
格式化時間
-
開源協議
-
### 安裝
```
npm i myselfbag
```
### 匯入
```js
const huahua= require('./myselfbag')
```
### 格式化時間
```js
// 呼叫 dateFormat 對時間進行格式化
const dtStr = huahua.dateFormat(new Date())
// 結果 2021-10-07 18:57:03
console.log(dtStr)
```
### 開源協議
ISC
八、注冊 npm 賬號
-
訪問 npm 網站,點擊
sign up按鈕,進入注冊用戶界面 -
填寫賬號相關的資訊:
Full Name、Public Email、Username、Password -
點擊
Create an Account按鈕,注冊賬號 -
登錄郵箱,點擊驗證鏈接,進行賬號的驗證
九、登錄 npm 賬號
-
npm賬號注冊完成后,可以在終端中執行npm login命令,依次輸入用戶名、密碼、郵箱后,即可登錄成功 -
注意:在運行
npm login命令之前,必須先把下包的服務器地址切換為npm的官方服務器,否則會導致發布包失敗!
十、把包發布到 npm上
將終端切換到包的根目錄之后,運行 npm publish 命令,即可將包發布到 npm 上(注意:包名不能雷同,可以先通過npm view 包名 快捷鍵檢測npm官網中是否出現過一樣的包名)
十一、洗掉已發布的包
-
運行
npm unpublish 包名 --force命令,即可從npm洗掉已發布的包 -
注意事項
-
npm unpublish命令只能洗掉 72 小時以內發布的包 -
npm unpublish洗掉的包,在 24 小時內不允許重復發布 -
發布包的時候要慎重,盡量不要往
npm上發布沒有意義的包!
至此,屬于我們自己的包就開發完成啦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/306259.html
標籤:其他
上一篇:光速上手,教你上傳自己的npm包
