package.json-nodeJs

package.json文件描述了一个NPM包的所有相关信息,包括作者、简介、包依赖、构建等信息。格式必须是严格的JSON格式。


通常我们在创建一个NPM程序时,可以使用npm init命令,通过交互式的命令,自动生成一个package.json文件,里面包含了常用的一些字段信息,但远不止这么简单。通过完善package.json文件,我们可以让npm命令更好地为我们服务。


如果你有个新的项目,还没有下载过任何的npm包,而需要的npm包跟前一个项目差不多。那么,你可以把这个项目里面的package.jn拷贝到当前项目根目录。然后npm install,所有的依赖包就会自动的下载完毕了!

 1 {
 2   //必须,标识;不能包含node,js等字段;将会是url的一部分
 3   //命令行的参数,目录名。所以不能移点号和下划线开头
 4   "name": "webpack-react",
 5   //name和version组成的标识是唯一的,改变包的时候应该同时改变version
 6   "version": "1.0.0",
 7   //简介,方便npm search中查找
 8   "description": "",
 9   //程序入口模块的id,调用此包时,返回的是该模块(index)的导出(export)
10   "main": "server.js",
11   /*    *repository: 代码存放地址  可选字段 */
12   "repository": "git://github.com/panqianjin/hello.git",
13   //同description 可选字段
14   "keywords": [ "test",  "cortex" ],
15   //普通licesnse可直接使用 你应该要指定一个许可证,让人知道使用的权利和限制的。
16 //  如果你有更复杂的许可条件,或者想要提供给更多地细节,可以这样:
17   /* "licenses" : [
18     { "type" : "MyLicense"
19     , "url" : "http://github.com/owner/project/path/to/license"
20     }
21   ]
22 */
23   "license": "MIT",
24   //当前包所依赖的其他包。即生产环境
25   "dependencies": {
26     "babel-preset-react": "^6.5.0",
27     "react": "^0.14.7",
28     "react-dom": "^0.14.7",
29     "webpack": "^1.12.15"
30   },
31   // 外部测试或文档框架。即测试环境依赖
32 //  如果只需要下载使用某些模块,而不下载这些模块的测试和文档框架,
33 //  放在这个下面比较不错
34   "devDependencies": {
35     "babel-core": "^6.7.2",
36     "babel-loader": "^6.2.4",
37     "babel-preset-es2015": "^6.6.0",
38     "babel-preset-stage-1": "^6.5.0",
39     "css-loader": "^0.23.1",
40     "file-loader": "^0.8.5",
41     "html-webpack-plugin": "^2.14.0",
42     "less-loader": "^2.2.3",
43     "react-hot-loader": "^1.3.0",
44     "style-loader": "^0.13.0",
45     "webpack-dev-server": "^1.14.1"
46   },
47   //engines: 既可以指定node版本也可以指定npm版本
48   "engines": {
49     "node": ">=0.10.0"
50   },
51   // *script 由脚本命令组成的hash对象在包不同生命周期运行   *
52   // key 时生命周期事件,value时要运行的命令
53   "scripts": {
54     "test": "echo "Error: no test specified" && exit 1",
55     "start_html":"webpack --config webpack.html.config.js",
56     "start_es6":"webpack --config webpack.es6.config.js",
57     "start_react":"webpack --config webpack.react.config.js",
58     "start_todo":"webpack --config webpack.todo.config.js",
59     "build":"webpack-dev-server --port 3000 --hot --inline",
60     "build_es6":"webpack-dev-server --port 4000 --hot --inline --config webpack.es6.config.js",
61     "build_todo":"webpack-dev-server --port 4000 --hot --inline --config webpack.todo.config.js"
62   },
63   /*    *homepage:项目官网   可选字段*/
64   "homepage": "http://github.com/panqianjin/hello"
65   "author": {
66     "name": "qianjin.pan",
67     "email": "qinajin.pan@dianping.com"
68   },
69   //问题追踪系统的url或者邮箱 可选字段
70   "bugs": {
71     "url": "http://github.com/panqianjin/hello/issues"
72   },
73 //  指定你的包可以在哪些系统平台下运行
74   "os": [ "darwin", "linux", "!win32" ],
75 //  可以指定包运行的cpu架构
76   "cpu": [ "x64", "!arm" ]
77 }
78 
79 
80 /*
81 "scripts": { "start": "node server.js" } 如果在项目根目录下含有server.js
82 文件,则NPM会自动设置此值。
83 
84 "scripts": { "preinstall": "node-gyp rebuild" }
85 如果在项目根目录下含有binding.gyp文件,则NPM会自动设置此值
86 
87 */
原文地址:https://www.cnblogs.com/studyshufei/p/8628496.html