用nodejs寫一個命令列應用-package.json介紹

Alongite發表於2018-07-24

作為一個nodejs專案,每個專案根目錄都有一個package.json,正確的配置package.json會產生意向不到的效果,如配置bin屬性。

一個典型的package.json檔案的內容 ( 通過vue-cli生成 )

{
  "name": "formula",
  "version": "0.1.0",
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "vue": "^2.5.16"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^3.0.0-beta.15",
    "@vue/cli-plugin-eslint": "^3.0.0-beta.15",
    "@vue/cli-service": "^3.0.0-beta.15",
    "less": "^3.7.1",
    "less-loader": "^4.1.0",
    "vue-template-compiler": "^2.5.16"
  }
}
複製程式碼

name 屬性

name 屬性是用來指定專案名稱的,釋出到npmjs上後,會使用這個屬性作為專案名稱

version 屬性

version 屬性是用來控制版本的,注意每次釋出到npmjs之前都要修改version值

scripts 屬性

scripts 屬性中配置了本地構建執行的一些命令,如上面的配置檔案中的build,執行npm run build就編譯本地檔案,生成能部署的程式碼

dependencies 屬性 和 devDependencies 屬性

  • dependencies 屬性中的內容是本專案所依賴的npm模組
  • devDependencies 屬性中的內容是專案開發所需要依賴的模組,僅作為開發依賴,不會上線,如 webpack

通過npm install <package> 安裝的模組會預設出現在 dependencies,通過npm install <package> --save-dev 安裝的模組會出現在 devDependencies 中。

小知識: npm instll 的引數介紹

  • npm install <package> --save-prod 是install的預設引數,模組會出現在package.json中的dependencies
  • npm install <package> --save-dev 安裝的模組會出現在 devDependencies

bin 屬性

bin 是用來指定各個內部命令對應的可執行檔案的位置,如vue-clipackage.json中有這樣的一段

"bin": {
    "vue": "bin/vue.js"
}
複製程式碼

通過這個配置,就可以使用vue命令了。

所以,如果你要寫一個像vue一樣的可執行模組,就需要加這樣一個欄位了。

相關文章