node npm package.json 解析

[TOC]

介紹

package.json 中包含各種所需模塊以及項目的配置信息 meta 信息

package.json 字段介紹

必要字段

name: 它屬于必須字段,在package.json中最重要的就是name和version字段,如果沒有就無法install
name和version一起組成的標識在假設中是唯一的。改變包應該同時改變version。

使用時,應注意以下三點:

  1. 不要在name中包含js, node字樣;
  2. 這個名字最終會是URL的一部分,命令行的參數,目錄名,所以不能以點號或下劃線開頭;
  3. 這個名字可能在require()方法中被調用,所以應該盡可能短;

version:同上,屬于必須字段

可選字段

  • description: 可選字段,它必須是字符串,幫助我們了解創建的包

  • keywords: 可選字段,可以是字符串數組,比如javascript, nodejs

  • homepage: 可選字段,項目官網的url。注意: 這和“url”不一樣。如果你放一個“url”字段,registry會以為是一個跳轉到你發布在其他地方的地址

  • bugs: 可選字段,問題追蹤系統的URL或郵箱地址;npm bugs用的上

  • license: 指定一個許可證,讓人知道使用的權利和限制的

  • main: main字段配置一個文件名指向模塊的入口程序

    如果你包的名字叫foo,然后用戶require("foo"),main配置的模塊的exports對象會被返回

  • scripts: “scripts”是一個由腳本命令組成的hash對象,他們在包不同的生命周期中被執行

"scripts": {
    "dev": "NODE_ENV=development ./node_modules/.bin/nodemon bin/www",
    "start": "NODE_ENV=production node bin/www",
    "prd": "pm2 start bin/www",
    "test": "echo \"Error: no test specified\" && exit 1"
  }

key是生命周期事件,value是要運行的命令,使用方式 yarn run dev 或者 npm run prd

  • config: 可選對象

為一個obj,Config對象中的值在Scripts的整個周期中皆可用,專門用于給Scripts提供配置參數

  • repository: 指定你的代碼存放的地方
  • dependencies: 指示當前包所依賴的其他包,版本格式可以是下面任一種:
version 完全匹配
>version 大于這個版本
>=version大于或等于這個版本
<version
<=version
~version 非常接近這個版本
^version 與當前版本兼容
  • devDependencies: 可選字段

如果只需要下載使用某些模塊,而不下載這些模塊的測試和文檔框架,放在devDependencies下面比較不錯

  • private: 可選字段,布爾值

如果private為true,npm會拒絕發布。這可以防止私有repositories不小心被發布出去

{
    "private": true
}

指定node版本

文檔來源于

https://docs.npmjs.com/files/package.json#engines

在package.json 中的engines 節點 指定 依賴的nodejs 的版本號碼

{
  "engines": {
    "node" : ">=8.0 <9.0",
    "npm": "~5.0.0"
  }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 原文鏈接:http://www.mujiang.info/translation/npmjs/files/pack...
    R_X閱讀 1,046評論 0 1
  • name 必須字段。提示: 不要在name中包含 js、 node 字樣; 這個名字最終會是 URL 的一部分,命...
    djyuning閱讀 1,421評論 0 1
  • npm是什么 NPM的全稱是Node Package Manager,是隨同NodeJS一起安裝的包管理和分發工具...
    build1024閱讀 7,959評論 0 9
  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey閱讀 6,264評論 2 36