編程工做中,常常會封裝一些經常使用的代碼片斷,好比如何獲取時間,格式化時間等。git
不一樣的團隊,不一樣的業務就會有多個相互獨立的項目。github
咱們能夠將公用的一些工具庫函數封裝成npm包的形式,可讓我的或者團隊這些import包就能夠直接使用。typescript
先去官網註冊一個帳號,填寫好帳號、密碼、郵箱npm
mkdir util-snippets
複製代碼
npm init
複製代碼
填寫好npm包的信息,做者信息,版本信息,並在package.json中的字段指定入口文件是./build/index.jsjson
"main": "./build/index.js",
複製代碼
安裝包文件,在package.json中配置scripts執行腳本:編譯運行,測試,格式化代碼等。 具體配置可在package.json中查看。安全
在根目錄中添加tsconfig.json還有tslint.json文件bash
npm install typescript tslib ts-jest @types/jest --save
複製代碼
npm install husky lint-staged tslint-config-prettier --save
複製代碼
在package.json中添加scripts,在build以前先自動跑測試用例,確保代碼運行的質量。函數
"scripts": {
"dev": "npm run tsc:w", // 監聽文件修改並實時編譯
"build": "npm run test && npm run lint && tsc", // 運行測試,優化代碼和編譯
"lint": "prettier --write --parser typescript 'src/**/*.ts' // 格式化同時代嗎 'test/**/*.ts'",
"test:w": "jest --watchAll", // 監聽測試文件修改並實時編譯,用戶本地開發
"test": "jest" // 運行測試用例
},
複製代碼
單元測試能夠及時發現代碼的問題,讓你發佈的npm包更安全更嚴謹。工具
開發好的包須要調試才能夠放心的讓本身和其餘人使用,之前的調試是經過不一樣指定發佈不一樣的tag,頻繁發佈到線上,再從新安裝依賴,這樣會影響到用戶,效率也低下。
如今將本地開發的npm包link到本地,而後經過另一個項目import進去,就能夠實現先在本地調試,調試成功,再發布到npm的官網上。樣就能夠直接模擬正常使用包的狀況。
在util-snippets目錄下執行
npm link // 至關於npm install util-snippets
複製代碼
在其餘須要測試util-snippets目錄下直接import進去就可使用了
import { allEqual } from 'utl-snippets'
複製代碼
1.在命令行登陸
npm login
複製代碼
2.發佈
npm publish
複製代碼
發佈成功就直接能夠import使用了
https://codesandbox.io/s/serene-wilbur-6uy5q
發佈tag包 每次publish都會是@lastet版本,用戶安裝的也是lastet,咱們能夠指定tag別名來發布
npm publisb --tag tabName(alpha)
複製代碼
修改版本 每次修改都會手動修改package.json裏面的version才能發佈,能夠指定如下命令來規範版本號
npm version patch // 小變更,好比修復bug等,版本號變更 v1.0.0->v1.0.1
npm publish // 增長新功能,不影響現有功能,版本號變更 v1.0.0->v1.1.0
npm version // 破壞模塊對向後的兼容性,版本號變更 v1.0.0->v2.0.0
複製代碼
git clone https://github.com/czero1995/util-snippets.git
cd util-snippets
npm i
npm run build
複製代碼
import { allEqual } from 'util-snippets'複製代碼