__Notes

發布NPM

初始化項目

需回答預設值

npm init

如果只是想要快速建立一個 package.json 檔案

npm init -y

package.json 的基本資訊範例

  • package name (名稱)taiwan-number-format
  • version (版本):可以從 1.0.0 開始
  • description (描述):將數字轉換為繁體中文的套件
  • entry point (入口點):通常是主要程式碼檔案的路徑,例如 index.js
  • test command (測試命令):用於執行測試的命令,如果有的話
  • git repository (Git 儲存庫):如果你將程式碼存儲在 Git 中,填寫你的 Git 儲存庫網址
  • keywords (關鍵字):描述套件的關鍵字,例如 taiwan, number, format, chinese
  • author (作者):填寫你的名字或組織
  • license (授權):根據偏好,選擇一個適合套件的授權類型,如 MIT、Apache-2.0、ISC 等
{
    "name": "chinese-number-format",
    "version": "1.0.2",
    "description": "中文數字轉換Chinese numeral conversion",
    "main": "dist/index.js", //入口
    "types": "dist/index.d.ts", //使用ts的定義文件
    "scripts": {
        "test": "jest"
    },
    "repository": {
        "type": "git",
        "url": "https://github.com/garylin0969/chinese-number-format.git"
    },
    "keywords": [
        "台灣",
        "中華民國",
    ],
    "author": {
        "name": "GaryLin",
        "email": "xxxxxx@gmail.com"
    },
    "license": "ISC",
    "devDependencies": {
        "@types/jest": "^29.5.11",
        "jest": "^29.7.0",
        "ts-jest": "^29.1.1",
        "typescript": "^5.3.3"
    }
}

使用TypeScript

npm install typescript --save-dev

npx tsc --init

根目錄創建dist資料夾

tsconfig.json 的基本資訊範例

{
    "compilerOptions": {
        "target": "es2016",
        "module": "commonjs",
        "outDir": "./dist", // 指定編譯後的 JavaScript 文件輸出目錄為 dist
        "esModuleInterop": true,
        "forceConsistentCasingInFileNames": true,
        "strict": true,
        "moduleResolution": "node",
        "declaration": true, // 生成 .d.ts
        "skipLibCheck": true
    },
    "include": [
        "src/**/*.ts" // 設定 TypeScript 源碼的位置
    ],
    "exclude": ["node_modules"] // 不需要編譯的文件
}

編譯TypeScript

npx tsc

初次發布

npm publish

更新發布

需要更新套件的版本號。 可以將套件的版本號升級一個小型的修訂版本,例如從 1.0.0 升級到 1.0.1。 這可以透過手動修改 package.json 檔案中的 version 欄位來完成,或使用 npm 提供的版本升級命令

npm version patch

然後再次發布

npm publish