配置文件之package.json

基础配置文件package.json

package.json文件是任何一个用npm管理的项目的基础配置文件,文件中包含了项目所要用到的所有依赖和脚本;

  • 基础属性

    • name:项目名称
    • version: 项目版本,version必须可以被npm依赖的一个node-semver模块解析

package.json必须是一个严格的json文件,其中最重要的是name和version两个属性,这两个属性必须要有,否则模块就无法被安装,这两个属性一起形成了一个npm模块的唯一标识。模块中内容变更的同时,版本也一起变化。

  • scripts属性

scripts属性是一个对象,这个对象中指定了项目的生命周期各个环节需要执行的命令(key是生命周期中的事件,value是要执行的命令)


scripts属性

上图是使用vue-cli脚手架时package.json里关于scripts属性的命令项:

  • “start”:启动命令,运行npm run dev时启动项目
  • “dev”:
    每次执行此命令时首先去加载webpack.dev.conf.js文件;
    --host 0.0.0.0在浏览器以IP地址形式打开;

“bulid”:build命令对应的脚本是node build.js,命令行下使用npm run命令,就可以执行这段脚本。

$ npm run build
// 等同于执行
$ node build.js

这些定义在npm中的脚本,就称之为npm脚本。每当执行npm run,就自动新建一个shell,在这个shell里面执行指定的脚本命令。因此,只要是shell可以运行的命令,就可以写在npm脚本里面。

  • dependencies属性

dependencies属性指定了项目运行所依赖的模块,对象中各个成员分别由模块名和版本组成,表示所依赖的模块及其版本范围;


dependencies属性

其中版本遵循“大版本.次要版本.小版本”的格式,版本范围的安装有以下几种形式:

  1. 指定版本:安装时只安装指定版本。
  2. 波浪号+版本号:比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x,也就是说安装时不改变大版本号和次要版本号,只改变小版本号。
  3. 插入号+版本号:比如ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。
  4. latest:安装最新版本。
  • devDependencies属性

devDependencies属性指定了项目开发所需要的模块;

在使用 npm install xxx 安装模块时,--save参数表示将该模块写入dependencies属性,--save-dev表示将该模块写入devDependencies属性

  • engines 属性
    engines属性

engines 属性指明了该模块运行的平台

  • browserslist属性
browserslist属性

browserslist属性指明了对浏览器的要求,这个配置文件时vue-cli脚手架内package.json文件,因此指明了vue不支持IE8

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,286评论 19 139
  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey阅读 6,294评论 2 36
  • Node 开发离不开 npm,而脚本功能是 npm 最强大、最常用的功能之一。 本文介绍如何使用 npm 脚本(n...
    邓海琪阅读 5,657评论 0 0
  • 一、什么是 npm 脚本? npm 允许在package.json文件里面,使用scripts字段定义脚本命令。 ...
    猪猪9527阅读 394评论 0 0
  • 为何善行之后会有恶行? 概括这章所讲 有一种许可叫做道德许可:当你做了“善行”时,你觉得自己是个好人,你就会允许自...
    元气满满321阅读 205评论 0 0