{ "name": "vue", "version": "0.6.0", "author": { "name": "Evan You", "email": "yyx990803@gmail.com", "url": "http://evanyou.me" }, "license": "MIT", "description": "A mini front-end MVVM framework", "keywords": [ "mvvm", "browser", "framework" ], "main": "src/main.js", "repository": { "type": "git", "url": "https://github.com/yyx990803/vue.git" }, "scripts": { "test": "grunt test" }, "devDependencies": { "grunt": "~0.4.2", "grunt-contrib-watch": "~0.5.3", "grunt-component-build": "~0.4.1", "grunt-contrib-jshint": "~0.7.1", "grunt-contrib-uglify": "~0.2.7", "grunt-mocha": "~0.4.6", "jscoverage": "~0.3.8", "jshint-stylish": "0.1.3", "semver": "~2.2.1" }, "__npminstall_done": true, "_from": "vue@0.6.0", "_resolved": "https://registry.npmmirror.com/vue/-/vue-0.6.0.tgz" }
package.json 是npm init命令初始化后,在项目的根目录下自动生成的配置文件,它定义了这个项目的配置信息(比如名称、版本、许可证等元数据)以及所需要的各种模块。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
package的名称。不过需要注意的是,name有长度限制(虽然一般都不会超),而且name不能以 【点】 或者 【下划线】开头,name中不能有大写字母。这个是每一个package必须的。在业务代码中,通过require(${name})就可以引入对应的程序包了。
package的版本。对于业务项目来说,这个往往不太重要,但是如果你要发布自己的项目,这个就显得十分重要了。name和version共同决定了唯一一份代码。npm是用[npm-semver来解析版本号的。我们一般见到的都是大版本.次要版本.小版本这种版本号,比如16.1.0。
包的描述。开发组件库时必需,简明的向库的使用者介绍这个库是干嘛的。对于公司的业务项目,这个配置项一般无所谓。
项目的作者。可以为字符串,对象。
开源协议。对于开源组件库,这个十分重要。
对于组件库很有用。让组件库使用者找到你的代码库地址。这个配置项会直接在组件库的npm首页生效
关键词。一个字符串数组,对这个npm包的介绍。组件库必需,便于使用者在npm中搜索。对于公司业务项目,这个配置一般无所谓。
数组。表示代码包下载安装完成时包括的所有文件。
代码入口。这个十分重要,特别是对于组件库。当你想在node_modules中修改你使用的某个组件库的代码时,首先在node_modules中找到这个组件库,第一眼就是要看这个main,找到组件库的入口文件。在这个入口文件中再去修改代码吧。
browser 环境和 node 环境均可使用。
模块引入方法require()在引入包时,会优先检查这个字段,并将其作为包中其余模块的入口。如果不存在这个字段,require()方法会查找包目录下的 index.js , index.node , index.json 文件作为默认入口。
指定了运行脚本命令的npm命令行缩写。十分重要。
脚本说明对象。它主要被包管理器用来安装,编译,测试和卸载包。
在命令行输入:npm run dev , 对应的命令就会被执行。这里有一个地方需要注意,当执行npm run xxx 的时候,node_modules/.bin/目录会在运行时被加入系统的PATH变量。
上面的例子,当我们在命令行输入:npm run build时,其实真正执行的命令是node_modules/.bin/webpack而不是webpack。所以,当你的webpack并未全局安装时,直接在命令行输入:webpack是会报错的。因为你的webapck是安装在node_modules/.bin/下面的。
项目的依赖。通过npm run install --save-dev安装的包会出现在这里。主要是在开发过程中依赖的一些工具。用法与dependencies相似
定义 npm 包在 browser 环境下的入口文件。