这是我参与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.1、0.13.2等,但不能更新到0.14.0或更高版本。 如果写入的是^1.13.0,则当运行npm update时,可以更新到1.13.1、1.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: 使用可用的最新版本。