node学习篇之package.json文件介绍

656 阅读3分钟

这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战

什么是Node.js?

  • Node.js 是一个开源与跨平台的javaScript运行时环境。
  • Node.js浏览器外运行 V8 JavaScript 引擎。
  • Node.js 应用程序运行于单个进程中,无需为每个请求创建新的线程。

执行node.js脚本

  • 执行命令 node app.js

如何从程序中退出

  • 在控制台使用 cltr + c 可以关闭运行中的程序。
  • 也可以使用 process.exit(),以编程的方式让程序退出。

如何从Node.js读取环境变量

  • Node.js的process核心模块提供了 env 属性,该属性承载了在启动进程时设置的所有环境变量。
  • 注意:process模块不需要 require,它是自动可用的

package.json文件介绍

  • package.json 文件是项目的清单。
  • 可以是工具的配置中心。
  • 也是 npm 或 yarn 存储所有已安装软件包的名称和版本的地方。

可配置的属性

  • name: 软件包或者说是项目的名称。(名称必须少于214个字符,且不能有空格,只能包含小写字母、连字符- 或者下划线 _)。
  • author: 作者名称。支持两种格式
"author": "包的作者名称"

"author": {
    "name": "作者名称",
    "email": "",
    "url": ""
}
  • contributors: 项目贡献者。
"contributors": []

"contributors": [{
    "name": "",
    "email": "",
    "url": ""
}]
  • bugs: 链接到软件包的问题跟踪器,最常用的是github的issues页面。
  • homepage: 软件包的主页。
  • version: 软件包当前版本。版本号始终以3个数字表示 x.x.x
    • 第一个数字是 主版本号;具有重大更改的是主版本。
    • 第二个数字是 次版本号;引入向后兼容的更改的版本是次版本。
    • 第三个数字是 补丁版本号;仅修复缺陷的版本是补丁版本。
  • license: 指定软件包的许可证。
  • keywords: 此属性包含与软件包功能相关的关键字数组。
  • description: 此属性包含了对软件包的简短描述。
  • repository: 次属性指定了次程序包仓库所在的位置。可以显示的设置版本控制系统。
"repository": {
    "type": "git", // "svn"
    "url": "https://github.com"
}
  • main: 程序的入口文件。
  • private: 是否私有。若为true,则会防止应用程序/软件包被意外发布到npm上。
  • scripts: 可以定义一组可运行的node脚本。
  • dependencies: 设置作为依赖安装的npm软件包的列表。
  • devDependencies: 设置作为开发依赖安装的 npm 软件包的列表。这些包只需安装在开发机器上,而无需在生产环境中运行代码。
yarn add --dev <packageName>          
npm install --save-dev <packageName>
  • engines: 设置此软件包/应用程序要运行的node或其他命令的版本。
"engines": {
  "node": ">= 6.0.0",
  "npm": ">= 3.0.0",
  "yarn": "^0.13.0"
}
  • browserlist: 用于告知支持哪些浏览器。Babel、Autoprefixer 和其他工具会用到它,以将所需的 polyfill 和 fallback 添加到目标浏览器。
"browserslist": [
  "> 1%",
  "last 2 versions",
  "not ie <= 8"
]

// 此配置意味着需要支持使用率超过 1%(来自 CanIUse.com) 的统计信息)的所有浏览器的最新的 2 个主版本,但不含 IE8 及更低的版本。
  • eslintConfig: 用于配置eslint相关设置。
  • babel: 用于配置babel

版本控制规则

  • ^ : 只会执行不更改最左边非零数字的更新。如果写入的是 ^0.13.0,则当运行 npm update 时,可以更新到 0.13.10.13.2 等,但不能更新到 0.14.0 或更高版本。 如果写入的是 ^1.13.0,则当运行 npm update 时,可以更新到 1.13.11.14.0 等,但不能更新到 2.0.0 或更高版本。
  • ~: 如果写入的是 〜0.13.0,则当运行 npm update 时,会更新到补丁版本:即 0.13.1 可以,但 0.14.0 不可以。
  • >: 接受高于指定版本的任何版本。
  • >=: 接受等于或高于指定版本的任何版本。
  • <=: 接受等于或低于指定版本的任何版本。
  • <: 接受低于指定版本的任何版本。
  • =: 接受确切的版本。
  • -: 接受一定范围的版本。例如:2.1.0 - 2.6.2
  • ||: 组合集合。例如 < 2.1 || > 2.6
  • 无符号: 仅接受指定的特定版本。
  • latest: 使用可用的最新版本。