上傳套件到 NPM 倉庫

上傳套件到 NPM 倉庫

上傳到 NPM 需要先註冊 NPM 帳號

然後建立 Nodejs 的專案

mkdir mason-demo
cd demo
npm init

確認 package.json

{
  "name": "mason-demo", # 你自己的專案名稱,不可以和現有NPM專案名稱相同
  "version": "0.0.1", # 版本。每次修改都要往上增加,沒辦法覆蓋或降級。
  "main": "index.js", # 進入點
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Mason", # 作者
  "license": "ISC", # License
  "description": "" # 說明
}

並且從 Terminal 登入 NPM

npm login 會提供一個網址給你,透過瀏覽器登入,並完成 OTP 驗證後,在 Terminal 及完成登入

 npm login

npm notice Log in on https://registry.npmjs.org/
Login at:
https://www.npmjs.com/login?next=/login/cli/319ce977-c308-44cb-913e-02d0c58d877f
Press ENTER to open in the browser...

上傳你的專案到 NPM 倉庫

在寫好 Code 之後,就可以執行 npm publish 及完成。

 npm publish

npm notice
npm notice 📦 [email protected]
npm notice Tarball Contents
npm notice 0B index.js
npm notice 232B package.json
npm notice Tarball Details
npm notice name: mason-demo
npm notice version: 1.0.1
npm notice filename: mason-demo-1.0.1.tgz
npm notice package size: 273 B
npm notice unpacked size: 232 B
npm notice shasum: a9e8716e310cdb5510c40c62fe48dc587b9d120c
npm notice integrity: sha512-KBEBi9bRhGmLX[...]Hn8pOcC55jSCA==
npm notice total files: 2
npm notice
npm notice Publishing to https://registry.npmjs.org/ with tag latest and public access
+ [email protected]

忽略不想上傳的檔案

和 git 相同,有個 .npmignore ,將要隱藏的檔案和目錄寫入到裡面,即可在上傳時忽略該檔案及目錄。

vim .npmignore

上傳新版本

更改 package.json 的 version,比前一個版本數字高,並重新執行 npm publish 及上傳新版本到 NPM 倉庫。

vim package.json
npm publish

Read more

30歲心得

30歲心得

1. 不要介入別人的課題。避免別人負面情緒,影響到自己。 2. 累積專業,提高最低收入。也是向上層級的基本。 3. 覺察自己,調整自身態度、行為模式,成為更好的自己。 4. 揣測人性,保護自己同時創造共贏。 5. 練習不帶自己價值觀,聆聽別人說什麼,接受世界什麼人都有,可能別人的方式更好。 6. 練習接受現況,並持續思考下一步。 一切痛苦來源都是不接受。 7. 不帶目的,廣結善緣。持續做,不知道種子什麼時候會發芽,但回報是巨大的,會遠遠超越工作多年,足以改變人生。越早開始越好,才有足夠時間等到機會到來。 8. 學習理財, 10萬, 300萬, 1000萬,...,只用自己階段適合的理財方式。 * < 10 萬,拼命存錢,存緊急預備金,買足人身保險。避開無政府監管投資。 * <300

By Mason Tang
n8n怎麼做防抖debounce?

n8n怎麼做防抖debounce?

防抖 debounce, 是程式設計重要的概念之一。 用意是短時間有多個訊息進來,只處理一次。 處理哪一次呢?只處理最後一次。 就比如,有人點擊習慣什麼都按兩下, 你就要每次都處理兩次嗎? 又比如,你做 Line 機器人。講一句回一句。 那如果使用者一次傳好幾句呢? 像是打錯字,習慣的修正,再送一次。或是使用者分段講完。 你要跑一次一起處理,還是跑多次? 現在你知道使用情境了,那在 n8n 怎麼做呢? 就比如 Line 訊息好了,你其實可以把Webhook 來的訊息存到 db 裡。 另外做一個 短時間(ex:10s) 就跑一次的 schedule, 去檢查新訊息,並休息一下(ex:5s)。再檢查新訊息。 如果兩次新訊息,筆數都一樣,就表示沒有新訊息進來了。就可以開始處理。 最後再把新訊息標記成舊訊息。 讓

By Mason Tang
n8n 主從架構,解放n8n效能,進行更多任務

n8n 主從架構,解放n8n效能,進行更多任務

n8n 有提供主從架構,讓多個 n8n 程式一起為你工作。 他們會懂得調派任務。 比如你把任務給主管,主管收到任務,就會把任務分配給底下的員工。而你身為老闆的你,只要面對主管。 這主管就是 Master, 員工就是 Slave (奴隸,真貼切) 透過多個程式,讓效率大幅提高。同時間能進行的任務更多。 那實際怎麼做呢? 設定 N8N_ENCRYPTION_KEY 這是用來加密資料庫資料的密鑰,在原本單一 n8n ,不是那麼需要,啟動時就會幫你建立。 會存在 .n8n/config 中,長得就像這樣 { "encryptionKey": "cjw5GKuWL6eoqaC0MOnHdBNWOfxAzXsn" } 今天你要跑多個 n8n ,每個 n8n 都要讀資料庫,那些加密的資料就需要同樣的 encryptionKey 才能讀取。 所以需要直接在環境變數中直接設定

By Mason Tang
n8n 做個計數器,保存變數到下一次執行

n8n 做個計數器,保存變數到下一次執行

n8n 可能有人會好奇,怎麼做計數器,例如一天只能使用 200次。 但是 Node 裡,似乎沒看到這功能。 但其實這功能就藏在 Code 裡 獲取靜態資料 其實這功能就藏在 $getWorkflowStaticData 使用這個函數,拿到的物件,其實是能持久化的,即使 n8n 關掉再開,資料也還在。 整個 n8n 共用這變數 使用 $getWorkflowStaticData('global') 這邊可以看到,這個 count 已經被使用 9 次了,並且在其他 Code 也可以獲得這個 count 單一 Node 使用,不能跨 Node 使用 使用 $getWorkflowStaticData('node&

By Mason Tang