对package.json的理解和学习

1、初步理解javascript

1. npm安装package.json时  直接转到当前项目目录下用命令npm install 或npm install --save-dev安装便可,自动将package.json中的模块安装到node-modules文件夹下
2. package.json 中添加中文注释会编译出错

3. 每一个项目的根目录下面,通常都有一个package.json文件,定义了这个项目所须要的各类模块,以及项目的配置信息(好比名称、版本、许可证等元数据)。npm install 命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。html

4. package.json文件能够手工编写,也可使用npm init命令自动生成。vue

 
注意:npm init 时,用户需回答一些问题,而后在当前目录生成一个基本的package.json文件。全部问题之中,只有项目名称(name)和项目版本(version)是必填的,其余都是选填的。
 
2、进一步理解 (完整的字段说明:http://www.mujiang.info/translation/npmjs/files/package.json.html  中文版)
如下是根据 建立vue项目的时候 npm init自动生成的package.json作详细的理解
1.下面是最简单的的一个package.json 文件(只有两个数据,项目名称和项目版本,他们都是必须的,若是没有就没法install)
{
  "name": "kocla_test",
  "version": "1.0.0",
}

2.scriptsjava

指定了运行脚本命令的npm命令行缩写,好比start指定了运行npm run start时,所要执行的命令。node

下面的设置指定了npm run dev、npm run bulid、npm run unit、npm run test、npm run lint时,所要执行的命令。 vue-router

"scripts": {
    "dev": "node build/dev-server.js",
    "build": "node build/build.js",
    "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
    "test": "npm run unit",
    "lint": "eslint --ext .js,.vue src test/unit/specs"
  },

3  dependencies,devDependenciesnpm

dependencies和devDependencies两项,分别指定了项目运行所依赖的模块、项目开发所须要的模块。它们都指向一个对象,该对象的各个成员,分别由模块名和对应的版本要去组成,表示依赖的模块及其版本范围json

--save参数表示将该模块写入dependencies属性,
--save-dev表示将该模块写入devDependencies属性。babel

"dependencies": {
    "vue": "^2.2.2",
    "vue-router": "^2.2.0"
  },
  "devDependencies": {
    "autoprefixer": "^6.7.2",
    "babel-core": "^6.22.1",
    "babel-eslint": "^7.1.1",
    "babel-loader": "^6.2.10",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-preset-env": "^1.2.1",
    "babel-preset-stage-2": "^6.22.0",
    "babel-register": "^6.22.0",
    "chalk": "^1.1.3",
}

四、config字段

config字段用于向环境变量输出值。app

{  
  "name" : "foo",  
  "config" : { "port" : "8080" },  
  "scripts" : { "start" : "node server.js" }  
}  

  

5.engines 字段
指明了该项目所须要的node.js版本
 "engines": {
    "node": ">= 4.0.0",
    "npm": ">= 3.0.0"
  },

  

6.bin

许多包有一个或多个可执行文件但愿被安装到系统路径。在npm下要这么作很是容易(事实上,npm就是这么运行的)。

这须要在你的package.json中提供一个bin字段,它是一个命令名和本地文件名的映射。在安装时,若是是全局安装,npm将会使用符号连接把这些文件连接到prefix/bin,若是是本地安装,会连接到./node_modules/.bin/。

好比,要使用myapp做为命令时能够这么作:

{ "bin" : { "myapp" : "./cli.js" } }

这么一来,当你安装myapp,npm会从cli.js文件建立一个到/usr/local/bin/myapp的符号连接(这使你能够直接在命令行执行myapp)。

相关文章
相关标签/搜索