除了測試之外,那當然就是發佈啦!
呼喚我最一開始的需求,就是希望能夠建立自己的 library 然後來使用,本篇計畫用 npm 來發佈。
同一隊的丹尼有寫了 Have fun! 新手也能打造的Javascript微型專案! Day22: 總是用別人寫的套件? 這次我們自己來寫一個npm package吧! 也可以前去參考,其實我也是參考他的 XD
首先,先建立一個乾淨的資料夾並建立我們的 package.json:
npm init -y
{
"name": "@build-own-hooks/use-toggle",
"version": "1.1.0",
"description": "A hook to toggle state between true and false",
"keywords": [
"react",
"react-hook",
"hook",
"toggle",
"state"
],
"author": "wlcharlie",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/wlcharlie/react-use-toggle.git"
},
"homepage": "https://github.com/wlcharlie/react-use-toggle#readme",
"license": "ISC",
}
name
如果有scoped
的話(也就是@後面/之前),可以放自己的使用者帳號,避免與其他套件同名,或者是透過 npm 建立一個 organization 來管理,若使用 private package 就要付費。
其實就跟一般的資料結構一樣,預計引入方式是這樣的話:
import useToggle from "@build-own-hooks/use-toggle"
那麼進入點就會是在 index.js (與package.json),結構如下:
npm publish --access=public
把昨天的測試專案打開來並輸入
npm i @build-own-hooks/use-toggle
修改一下引入:
// import useToggle from "./hooks/useToggle"
import useToggle from "@build-own-hooks/use-toggle"
這樣就沒問題了!之後就可以慢慢把其他可使用的 hook 慢慢一起整合!
由於時間緊迫,可惜沒能同一篇研究 dependencies and bundle >_<