npm包開發與發布


 

把通用的功能開發成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地址:

https://github.com/shiyuan598/FrontEnd/tree/master/npm/datetime-format
 

 僅介紹npm包開發與發布的流程,如有問題請不吝賜教,歡迎留言交流~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM