npm中package.json详解
通常我们使用npm init命令来创建一个npm程序时,会自动生成一个package.json
文件。package.json
文件会描述这个NPM包的所有相关信息,包括作者、简介、包依赖、构建等信息,格式是严格的JSON格式。
常用命令
npm i --save packageName 安装依赖包
npm i --save-dev packageName
npm i webpack@1.2.1 安装指定版本的包,版本号用@符号连接
属性介绍
name
name
和version
是package.json中最重要的两个字段,也是发布到NPM平台上的唯一标识,如果没有正确设置这两个字段,包就不能发布和被下载。
version
包的版本号。如"1.0.0"。
description
包的描述信息,将会在npm search
的返回结果中显示,以帮助用户选择合适的包。
keywords
包的关键词信息,是一个字符串数组,同上也将显示在npm search
的结果中。
homepage
包的主页地址。
bugs
包的bug跟踪主页地址。
license
包的开源协议名称。
author
包的作者。
contributors, maintainers
包的贡献者,是一个数组。
files(较少用)
包所包含的所有文件,可以取值为文件夹。通常我们还是用.npmignore
来去除不想包含到包里的文件。
main
包的入口文件。
bin(较少用)
如果你的包里包含可执行文件,通过设置这个字段可以将它们包含到系统的PATH
中,这样直接就可以运行,很方便。
man(较少用)
为系统的man
命令提供帮助文档。帮助文件的文件名必须以数字
结尾,如果是压缩的,需要以.gz
结尾。
"man": ["./man/foo.1", "./man/bar.1", "./man/foo.2" ]
directories(较少用)
CommonJS包所要求的目录结构信息,展示项目的目录结构信息。字段可以是:lib, bin, man, doc, example。值都是字符串。
repository
包的仓库地址。
"repository": {
"type": "git",
"url": "git+https://github.com/rainnaZR/es6-react.git"
},
scripts
通过设置这个可以使NPM调用一些命令脚本,封装一些功能。
"scripts": {"start": "babel-node src/pages/index.js",
"build": "webpack --config config/webpack.config.js",
"watch": "webpack-dev-server --config config/webpack.config.js --hot --inline --progress"
}
config
添加一些设置,可以供scripts
读取用,同时这里的值也会被添加到系统的环境变量中。
"config": {
"port": "8080"
}
npm start
的时候会读取到npm_package_config_port
环境变量。
dependencies
指定依赖的其它包,这些依赖是指包发布后正常执行时所需要的,也就是线上需要的包。使用下面的命令来安装:
npm install --save packageName
如果是开发中依赖的包,可以在devDependencies
设置。
devDependencies
这些依赖只有在开发时候才需要。使用下面的命令来安装:
npm install --save-dev packageName
peerDependencies
相关的依赖,如果你的包是插件,而用户在使用你的包时候,通常也会需要这些依赖(插件),那么可以将依赖列到这里。
如karma
, 它的package.json
中有设置,依赖下面这些插件:
"peerDependencies": {
"karma-jasmine": "~0.1.0",
"karma-requirejs": "~0.2.0",
"karma-coffee-preprocessor": "~0.1.0",
"karma-html2js-preprocessor": "~0.1.0",
"karma-chrome-launcher": "~0.1.0",
"karma-firefox-launcher": "~0.1.0",
"karma-phantomjs-launcher": "~0.1.0",
"karma-script-launcher": "~0.1.0"
}
bundledDependencies
绑定的依赖包,发布的时候这些绑定包也会被一同发布。
optionalDependencies(较少用)
即使这些依赖没有,也可以正常安装使用。
engines(较少用)
指定包运行的环境。
"engines": {
"node": ">=0.10.3 < 0.12",
"npm": "~1.0.20"
}
os(较少用)
指定你的包可以在哪些系统平台下运行。
"os": [ "darwin", "linux", "!win32" ]
cpu(较少用)
可以指定包运行的cpu架构。
private
设为true
这个包将不会发布到NPM平台下。
publishConfig(较少用)
这个字段用于设置发布时候的一些设定。尤其方便你希望发布前设定指定的tag
或registry
。
如下:
{
"name": "react",
"version": "1.0.0",
"description": "Command line instructions",
"keywords": [
"react",
"es6",
"react with es6"
],
"homepage": "https://github.com/rainnaZR/es6-react",
"bugs": {
"url": "https://github.com/rainnaZR/es6-react",
"email": "111@163.com"
},
"license": "ISC",
"author": "ZRainna",
"main": "src/pages/index.js",
"directories": {
"tests": "tests",
"lib":"lib",
"docs":"docs"
},
"repository": {
"type": "git",
"url": "git+https://github.com/rainnaZR/es6-react.git"
},
"scripts": {"start": "babel-node src/pages/index.js",
"build": "webpack --config config/webpack.config.js",
"watch": "webpack-dev-server --config config/webpack.config.js --hot --inline --progress"
},
"babel": {
"presets": [
"es2015-node5"
]
},
"devDependencies": {
"webpack": "^1.13.2",
"webpack-dev-server": "^1.16.1"
},
"dependencies": {
"babel-loader": "^6.2.5",
"babel-preset-es2015": "^6.14.0",
"babel-preset-react": "^6.11.1",
"react": "^15.3.2",
"react-dom": "^15.3.2",
"react-redux": "^4.4.5",
"react-router": "^2.8.1",
"redux": "^3.6.0"
}
}
参考:
https://www.ijser.cn/npm-package-json-document/
npm中package.json详解的更多相关文章
- (译)package.json详解
原文链接 概述 本文囊括了所有package.json文件中你需要知道的细节.注意package.json必须是纯JSON的,而不仅仅是一个JavaScript对象字面量.该文件描述的很多行为都受np ...
- package.json 详解
使用package.json 属性说明 name - 包名. version - 包的版本号. description - 包的描述. homepage - 包的官网 url . author - ...
- VSCode插件开发全攻略(三)package.json详解
更多文章请戳VSCode插件开发全攻略系列目录导航. package.json 在详细介绍vscode插件开发细节之前,这里我们先详细介绍一下vscode插件的package.json写法,但是建议先 ...
- React package.json详解
概述: 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据).npm install命令根据这个配置文件 ...
- package.json详解
1.概念 Node.js项目遵循模块化的架构,当我们创建了一个Node.js项目,意味着创建了一个模块,这个模块的描述文件,被称为package.json 亦即:模块的描述文件 = package.j ...
- Javascript模块化开发1——package.json详解
一.环境安装 Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/. 在该页面你可以根据不同平台系统选择你需要的 Node.js 安装包. Node. ...
- package.json详解以及package-lock.json的作用
一.创建 package.json输入如下命令之后,会要求填写基本的配置信息,这里,我们选择一路回车即可,待生成 package.json 文件之后,再来配置. npm init 二.配置 packa ...
- vue package.json 详解
示例: { "name": "scrm", "version": "0.1.0", "private" ...
- npm的package.json字段含义中文文档
简介 本文档有所有package.json中必要的配置.它必须是真正的json,而不是js对象. 本文档中描述的很多行为都受npm-config(7)的影响. 默认值 npm会根据包内容设置一些默认值 ...
随机推荐
- 最新中国菜刀caidao-20160620下载和说明
0x00 中国制造, 黑客之刀 中国菜刀是中国安全圈内使用非常广泛的一款Webshell管理工具,此次老兵大牛进行了更新,界面更加优美,功能更加丰富,有图有真相! 0x01 验证 此次更新还自带了官网 ...
- js中的==运算: [''] == false —>true
图1 计算下面表达式的值: [''] == false 首先,两个操作数分别是对象类型.布尔类型.根据图1,需要将布尔类型转为数字类型,而false转为数字的结果是0,所以表达式变为: [''] == ...
- 腾讯Tinker初入门总结
- numpy函数fromfunction分析
从函数规则创建数组是非常方便的方法.在numpy中我们常用fromfunction函数来实现这个功能. 在numpy的官网有这么一个例子. >>> def f(x,y): ... r ...
- sql server 小记——分区表(上)
我们知道很多事情都存在一个分治的思想,同样的道理我们也可以用到数据表上,当一个表很大很大的时候,我们就会想到将表拆 分成很多小表,查询的时候就到各个小表去查,最后进行汇总返回给调用方来加速我们的查询速 ...
- SQLServer查询锁表
查看被锁表: select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys. ...
- linux 拨号+squid监控脚本
客户端 #!/bin/bash #get_memory-info a=`free -m|grep Mem|awk '{print$2}'` #total-memory b=`free -m|grep ...
- pl/sql developer——instant-client 简单配置
instant-client(数据库即时客户端) 官方说明:即时客户端在一个单独的针对 Instant Client 的 OTN 开发和分发许可下提供,它允许大多数许可下载.重新分发和部署到生产环境中 ...
- nginx有关.htaccess小结
可能很多朋友都常用nginx不支持.htaccess,只有apache才支持.htaccess文件,其实这是错误的看法nginx也是支持.hatccess的哦. 其实nginx和.htaccess一点 ...
- hw 要的是螺丝钉
日前突然接到华为HR的电话,叫我去面试。本来我的工作和工资收入等各方面在本地也还算可以,没有想要跳槽。但是本着去看看有没有更好机会的想法就去了。 9:30到了现场后,在那里等了很久,一个考官上来问了 ...