把通用的功能開發成npm包,便用使用和維護,更重要的是可以分享給廣大的開發者,是不是很激動人心!
那么,步驟如下:
1.創建項目
創建項目目錄,npm init ,根據需要輸入配置信息(建完后也可以在package.json中自行修改)
創建完成后項目目錄下會有一個package.json文件
配置項
name: 說明了npm包的名稱,也就是publish后可以在npmjs中通過該名稱搜索到
version:版本號
main:入口文件
2.創建index.js文件,內容如下:
1 function addZero(num) { 2 return num > 9 ? num : '0' + num 3 } 4 5 let formatter = { 6 date: null, 7 init(date) { 8 try { 9 if (date) { 10 this.date = new Date(date) 11 } 12 } catch (error) { 13 console.info(error) 14 } 15 }, 16 getDateTime () { 17 let date = this.date || new Date() 18 let res = '' 19 res = date.getFullYear() + '-' + addZero(date.getMonth() + 1) + '-' +addZero(date.getDate()) 20 + ' ' + addZero(date.getHours()) + ':' + addZero(date.getMinutes()) + ':' + addZero(date.getSeconds()) 21 return res 22 }, 23 getDate () { 24 return this.getDateTime().split(' ')[0] 25 }, 26 getTime () { 27 return this.getDateTime().split(' ')[1] 28 } 29 } 30 31 module.exports = formatter
module.exports = formatter意思是把formatter輸出。
3.測試
創建test-formatter.js,導入index並使用其中的方法
1 let formatter = require('./index') // 導入 2 formatter.init('2018-6-9') 3 console.info(formatter.getDateTime())
命令行輸入 node test-formatter.js 執行,結果為:
4.測試沒有問題,那么需要創建一個ReadMe文件進行說明
主要包含:
介紹,安裝方法,github地址,使用示例
1 # datetime-format-wsy 2 格式化時間,獲取2019-08-07 15:06:32或2019-08-07或15:06:32 3 4 # install 5 npm install -g datetime-format-wsy 6 7 #github 8 https://github.com/shiyuan598/FrontEnd/tree/master/npm/datetime-format 9 10 #usage 11 let formatter = require('./index') 12 formatter.init('2018-6-9') 13 console.info(formatter.getDateTime())
此時項目的目錄結構如下:
5.下面就可以發布了
先要有一個npm賬號,,如果沒有請到 https://www.npmjs.com 注冊
命令行輸入:
npm login
根據提示依次輸入用戶名、密碼,登錄成功后會顯示用戶名。
命令行輸入:
npm publish
完成發布。
如果是因為使用了淘寶鏡像導致publish不成功,可以按如下步驟操作:
npm i -g nrm
nrm use npm
再次npm publish
6.使用
發布成功后就可以在npmjs中搜索、也可以安裝使用了。
在npmjs搜索的結果:
安裝:
命令行輸入:npm install datetime-format-wsy --s
安裝完成后項目目錄下會增加package-lock.json描述了該包的信息:
1 { 2 "name": "datetime-format-wsy2", 3 "version": "1.0.1", 4 "lockfileVersion": 1, 5 "requires": true, 6 "dependencies": { 7 "datetime-format-wsy": { 8 "version": "1.0.1", 9 "resolved": "https://registry.npmjs.org/datetime-format-wsy/-/datetime-format-wsy-1.0.1.tgz", 10 "integrity": "sha512-klyoj8r2KbOqN9zngjplMr+EWU+cGqa1KgzNn+TUtEpzvYqmnJvj+P90gYXgm0sKVd4+30GLesocoRmMWh3Q0Q==" 11 } 12 } 13 }
在test-format.js中使用
1 let timeFormat = require('datetime-format-wsy') 2 let date = timeFormat.getDateTime() 3 console.info(date)
結果:
(另外,使用node運行js文件,文件改動后不會自動更新,需要重復運行node命令,
可以使用nodemon代替,自動重啟,提升效率,
安裝:npm install -g nodemon
使用: nodemon filename.js)
代碼github地址:
僅介紹npm包開發與發布的流程,如有問題請不吝賜教,歡迎留言交流~