package.json

{
  "name": "sell-inquiries", 
  "version": "1.0.0",
  "description": "1.0.0",
  "author": "1",
  "private": true,
  "main": "filename.js",
  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "build": "node build/build.js",
    "uatbuild": "node build/uatbuild.js",
    "commit": "node commit/index.js"
  },
  "dependencies": {
    "animate.css": "^3.6.1",
    "axios": "^0.16.2",
    "babel-polyfill": "^6.26.0",
    "element-ui": "2.3.9",
    "vue": "^2.5.2",
    "vue-cookie": "^1.1.4",
    "vue-router": "^3.0.1",
    "vue2-animate": "^2.0.0",
    "vuex": "^3.0.1"
  },
  "devDependencies": {
    "request": "^2.87.0",
    "autoprefixer": "^7.1.2",
    "babel-core": "^6.22.1",
    "babel-preset-env": "^1.3.2",
    "babel-preset-stage-2": "^6.22.0",
    "webpack-merge": "^4.1.0"
  },
  "keywords": ["short", "relevant", "keywords", "for", "searching"],
  "bin": {
    "someTool": "./bin/someTool.js"
  },
  "homepage": "https://your-package.org",
  "bugs": "https://github.com/user/repo/issues",
  "repository": "github:user/repo",
  "engines": {
    "node": ">= 6.0.0",
    "npm": ">= 3.0.0"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]
}

复制代码

npm init:能够建立一个package.json文件css


  1. name: 包的名字,name和version字段是package.json文件中最重要的字段。这是必须的字段,若是你的npm包没有指定这两个字段,将没法被安装。name和version字段被假定组合成一个惟一的标识符。包内容的更改和包版本的更改是同步的。

name字段的含义不须要过多解释,就是npm包名。vue

几个规则:node

  • name的长度必须小于等于214个字符。
  • name不能以"."(点)或者"_"(下划线)开头。
  • name中不能包含大写字母。
  • name最终将被用做URL的一部分、命令行的参数和文件夹名。所以,name不能含有非URL安全的字符。

几个建议:webpack

  • 不要使用已存在的name做为包名。
  • 不要在name中使用"js"和"node",这会假定这是js文件,一旦你写一个package.json文件,你就能够在"engines"字段中指定解释器引擎。
  • name字段可能会被做为传输传递给require()函数,所以它最好是简短的、自描述的。
  • 你可能会须要在深刻开发一个包以前先检查npm的registry来确认某个name是否被使用过,能够参考https://www.npmjs.com/。

一个name能够用scope来指定一个前缀,好比@myorg/mypackage,能够参考npm-scope。ios

  1. version:包的当前版本号,遵照“大版本.次要版本.小版本”的格式。
  2. description:是帮助使用者了解包的功能的字符串,包管理器也会把这个字符串做为搜索关键词。
  3. author:做者信息
{
  "author": {//能够是一个对象,也能够用下面的字符串表示
    "name": "Your Name",
    "email": "you@example.com",
    "url": "http://your-website.com"
  },
  "author": "Your Name <you@example.com> (http://your-website.com)"
}
复制代码
  1. private:发布,若是你不想你的包发布到包管理器,设置为 true。
  2. scripts:指定了运行脚本命令的npm命令行缩写,这些命令运行在包的各个生命周期中。npm run start时执行的就是npm run dev,执行npm run build时执行的就是node build/uatbuild.js。若是没有写start,start 脚本的默认值为 node server.js。
  3. dependencies字段,devDependencies字段。dependencies字段指定了项目运行所依赖的模块,devDependencies指定项目开发所须要的模块,在本地开发时要用到,到了线上不须要。 对应版本的限制:
  • 指定版本:好比1.2.2,遵循“大版本.次要版本.小版本”的格式规定,安装时只安装指定版本。
  • 波浪号+指定版本:好比~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),可是不安装1.3.x,也就是说安装时不改变大版本号和次要版本号。
  • 插入号+指定版本:好比ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),可是不安装2.x.x,也就是说安装时不改变大版本号。须要注意的是,若是大版本号为0,则插入号的行为与波浪号相同,这是由于此时处于开发阶段,即便是次要版本号变更,也可能带来程序的不兼容。
  • latest:安装最新版本。
  1. engines:字段指明了该模块运行的平台,好比 Node 的某个版本或者浏览器。该字段也能够指定适用的npm版本。
  2. main:字段指定了模块的入口程序文件,main字段指定了加载的入口文件,require('moduleName')就会加载这个文件。这个字段的默认值是模块根目录下面的index.js。
  3. keywords:关键字是一个字符串数组,当在包管理器里搜索包时颇有用
  4. bin:bin项用来指定各个内部命令对应的可执行文件的位置。因为node_modules/.bin/目录会在运行时加入系统的PATH变量,所以在运行npm时,就能够不带路径,直接经过命令来调用这些脚本
"bin": {
  "someTool": "./bin/someTool.js"
}
scripts: {  
  start: './node_modules/someTool/someTool.js build'
}
// 简写为
scripts: {  
  start: 'someTool build'
}
复制代码
相关文章
相关标签/搜索