[TOC]
介紹
package.json 中包含各種所需模塊以及項目的配置信息 meta 信息
package.json 字段介紹
必要字段
name: 它屬于必須字段,在package.json中最重要的就是name和version字段,如果沒有就無法install
name和version一起組成的標識在假設中是唯一的。改變包應該同時改變version。
使用時,應注意以下三點:
- 不要在name中包含js, node字樣;
- 這個名字最終會是URL的一部分,命令行的參數,目錄名,所以不能以點號或下劃線開頭;
- 這個名字可能在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"
}
}