目錄
包的簡介
首先讓我們簡單了解下為什么需要包:
包的分類:
包的規范(基本):
建包步驟:
前期準備:
發布包:
洗掉包:
拓展:
包的簡介
首先讓我們簡單了解下為什么需要包:
- 由于 Node.js 的內置模塊僅提供了一些底層的 API,導致在基于內置模塊進行專案開發的時,效率很低
- 包是基于內置模塊封裝出來的,提供了更高級、更方便的 API,極大的提高了開發效率
- 包和內置模塊之間的關系,類似于 jQuery 和 瀏覽器內置 API 之間的關系
包的分類:
- 專案包:開發依賴包、核心依賴包
- 全域包:下好后電腦上在哪都可以用,專案包需要去下載到的專案中才能用
包的規范(基本):
- 包必須以單獨的目錄而存在
- 包的頂級目錄下要必須包含package.json這個包管理組態檔
- package.json中必須包含name、version、main這三個屬性,分別代表包的名字、版本號、包的入口
現在進入建包!!!!
建包步驟:
前期準備:
package.json:包的組態檔
index.js:入口檔案
說明檔案:安裝方式、匯入方式、格式化時間、轉義HTML中的特殊字符、還原HTML中的特殊字符、開源協議(沒有強制性要求)
發布包:
- 訪問https://www.npmjs.com/,點擊sign up按鈕,進入注冊用戶界面
- 填寫賬號相關資訊:full name、public email、username、password
- 點擊create an account按鈕注冊
- 回到終端npm login命令依次輸入用戶名、密碼(在輸入時密碼不顯示,其實已經輸入進去了,大家一定要記好密碼)、郵箱

注意:不要在鏡像服務器上登錄發布包,需要將服務器切換到npm服務器上(具體切換會在后面文章單獨說明),再發布前先去npm官網看看有沒有相同名字的包,如果有相同名字的包需更改包名,不然會造成發布不成功
洗掉包:
運行npm unpublish 包名 --force命令,即可從npm洗掉已發布的包
拓展:
如果建包是存在多個功能最好劃分不同模塊!!!
// 定義格式化時間的函式
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
}
將格式化時間的功能,拆分到 src -> dateFormat.js 中
// 定義轉義 HTML 字符的函式
function htmlEscape(htmlstr) {
return htmlstr.replace(/<|>|"|&/g, match => {
switch (match) {
case '<':
return '&glt;'
case '>':
return '>'
case '"':
return '"'
case '&':
return '&'
}
})
}
// 定義還原 HTML 字符的函式
function htmlUnEscape(str) {
return str.replace(/&glt;|>|"|&/g, (match) => {
switch (match) {
case '&glt;':
return '<'
case '>':
return '>'
case '"':
return '"'
case '&':
return '&'
}
})
}
module.exports = {
htmlEscape,
htmlUnEscape
}
將處理 HTML 字串的功能,拆分到 src -> htmlEscape.js 中
// 這是包的入口檔案
const date = require('./src/dateFormat')
const escape = require('./src/htmlEscape')
// 匯出
module.exports = {
...date,
...escape
}
在 index.js 中,匯入兩個模塊,然后使用 module.exports 把對應的方法共享出去
小白總結,歡迎大佬點評!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/306357.html
標籤:其他
