Egg学习笔记(一):建立项目

从某些年以后,就再也没有使用一门语言去写事后端的东西,最近相对来讲仍是比较闲的,因此从新打开编辑器,去学习和了解一下后端的内容。html

因为近几年一直从事前端,对于后端的东西几乎再也不接触(除了跟后端人员对接口), 致使曾经学过的服务端基础知识都已经遗忘的差很少了。为了再从新对后端有一些认识,和拓宽本身的知识面和技术空间啊,想从新认识一下服务端的技能。所以选择的了node来重新踏足后端的世界。前端

可是nodejs的服务端框架其实也有不少,好比express(使用的比较广),koa,egg,think之类的。通过考虑以后,我仍是选择了阿里的egg框架来进行学习。node

建立项目

固然万事开头难,对于学习一个新的内容,尤为是计算机方面的东西,环境其实你开始的拦路虎,只有你尝试了到一果子的甜才会更加的多吃果子。所以对于egg的学习依旧是先搭建环境。git

egg.js是基于koa为底层,由阿里nodejs团队封装的企业级Web应用解决方案,以约束和规范化团队开发,帮助开发团队和开发人员下降开发和维护成本为核心设计理念的优秀解决方案。因此只须要node环境,就可以运行egg框架,所以其实egg的开发环境仍是比较容易搭建的。github

环境准备

  • 操做系统:支持 macOS,Linux,Windows
  • 运行环境:建议选择 LTS 版本,最低要求 8.x。

上面的这个就不用说了。作为一名前端开发,其实这个环境仍是有的。express

初始化项目

直接使用脚手架来建立项目(逐步建立项目能够直接参考官网进行建立,官网也比较推荐使用脚手架来进行建立项目):npm

$ mkdir egg-example && cd egg-example
$ npm init egg --type=simple
$ npm i

而后运行,进入项目目录中:执行json

$ npm run dev
$ open http://localhost:7001

这个时候你可以在浏览器中看到了hello egg这几个字后端

npm init egg --type=simple到底作了什么

在了解这个命令到底作了什么以前,咱们先来了经过官网解一个npm init 这个命令:入口:https://docs.npmjs.com/cli-commands/init.html浏览器

官方是这么进行描述npm init这个命令的:

Description
npm init can be used to set up a new or existing npm package.
initializer in this case is an npm package named create- , which will be installed by npx, and then have its main bin executed -- presumably creating or updating package.json and running any other initialization-related operations.
The init command is transformed to a corresponding npx operation as follows:
npm init foo -> npx create-foo
npm init @usr/foo -> npx @usr/create-foo
npm init @usr -> npx @usr/create

上面这段话翻译过来就是:

npm init   能够被使用建立一个新的或者已经存在的 npm 包

initializer 在这个命令中是一个 npm 包 ,名称为 create- , 将要被 npx 安装,而后他们的 package.json bin 对应的脚本将被执行,执行的结果很大的多是建立或者更新 package.json 文件, 运行一些其余的初始化关联操做。

下面是示例:

npm init foo -> npx create-foo

npm init @user/foo -> npx @user/create-foo

npx init @user -> npx @user/create

若是 initializer 被省略 ,即 npm init 将会交互式的问你几个问题建立一个 package.json 文件。

好了,咱们知道了npm init egg的其实就是执行了npx create-egg。有关npx的使用这边能够参考阮一峰的文章http://www.ruanyifeng.com/blog/2019/02/npx.html

明白了 npm init egg 表明什么意思,就是 npx create-egg 那咱们就去看一下 [create-egg](https://link.zhihu.com/?target=https%3A//github.com/eggjs/create-egg) npm 包 , github 仓库地址为: https://github.com/eggjs/create-egg

首先查看 README 文件

Alias for egg-init, so you could use npm init egg showcase

说是 egg-init 的别名,这说明主要的逻辑应该都在 egg-init 仓库了

这里先看 npx create-egg 作了什么:

  1. 查看 package.json 文件发现 "bin": "./bin/create-egg.js"
  2. 而后去查看 ./bin/create-egg.js 文件,发现就只有一个 require('egg-init/bin/egg-init') ,这也说明主要的逻辑在 egg-init 仓库中。 到这 create-egg 的做用就完成了

接下来咱们去看 egg-init 仓库,咱们这里再次体现一下,查看开源代码先看 README 文件

该仓库的 README 文件已经说的很清楚了,关于怎么去使用该工具

最后还有一个 --type=sample 参数起到了什么做用?

查看文档发现有好几种模板类型,选定你须要的模板类型就会自动去下载对应的模本文件到你指定的目标文件夹中。

再下载模板文件的时候,会先从 egg-init-config 获取模板的配置信息, 来供你选择。全部的模本项目都在 https://github.com/eggjs 这个组织下面

到此 对于 npm init egg --type=sample 作了什么已经讲了很清楚了。

小结

上面的内容就是咱们使用了egg建立了一个新的项目,而且对其如何建立项目有一个比较深刻的了解。

相关文章
相关标签/搜索