{
"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文件
- name: 包的名字,name和version字段是package.json文件中最重要的字段。这是必须的字段,如果你的npm包没有指定这两个字段,将无法被安装。name和version字段被假定组合成一个唯一的标识符。包内容的更改和包版本的更改是同步的。
name字段的含义不需要过多解释,就是npm包名。
几个规则:
- name的长度必须小于等于214个字符。
- name不能以"."(点)或者"_"(下划线)开头。
- name中不能包含大写字母。
- name最终将被用作URL的一部分、命令行的参数和文件夹名。因此,name不能含有非URL安全的字符。
几个建议:
- 不要使用已存在的name作为包名。
- 不要在name中使用"js"和"node",这会假定这是js文件,一旦你写一个package.json文件,你就可以在"engines"字段中指定解释器引擎。
- name字段可能会被作为传输传递给require()函数,因此它最好是简短的、自描述的。
- 你可能会需要在深入开发一个包之前先检查npm的registry来确认某个name是否被使用过,可以参考https://www.npmjs.com/。
一个name可以用scope来指定一个前缀,比如@myorg/mypackage,可以参考npm-scope。
- version:包的当前版本号,遵守“大版本.次要版本.小版本”的格式。
- description:是帮助使用者了解包的功能的字符串,包管理器也会把这个字符串作为搜索关键词。
- author:作者信息
{
"author": {//可以是一个对象,也可以用下面的字符串表示
"name": "Your Name",
"email": "you@example.com",
"url": "http://your-website.com"
},
"author": "Your Name <you@example.com> (http://your-website.com)"
}
- private:发布,如果你不想你的包发布到包管理器,设置为 true。
- scripts:指定了运行脚本命令的npm命令行缩写,这些命令运行在包的各个生命周期中。npm run start时执行的就是npm run dev,执行npm run build时执行的就是node build/uatbuild.js。如果没有写start,start 脚本的默认值为 node server.js。
- 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:安装最新版本。
- engines:字段指明了该模块运行的平台,比如 Node 的某个版本或者浏览器。该字段也可以指定适用的npm版本。
- main:字段指定了模块的入口程序文件,main字段指定了加载的入口文件,require('moduleName')就会加载这个文件。这个字段的默认值是模块根目录下面的index.js。
- keywords:关键字是一个字符串数组,当在包管理器里搜索包时很有用
- bin:bin项用来指定各个内部命令对应的可执行文件的位置。由于node_modules/.bin/目录会在运行时加入系统的PATH变量,因此在运行npm时,就可以不带路径,直接通过命令来调用这些脚本
"bin": {
"someTool": "./bin/someTool.js"
}
scripts: {
start: './node_modules/someTool/someTool.js build'
}
// 简写为
scripts: {
start: 'someTool build'
}