从某些年以后,就再也没有使用一门语言去写事后端的东西,最近相对来讲仍是比较闲的,因此从新打开编辑器,去学习和了解一下后端的内容。html
因为近几年一直从事前端,对于后端的东西几乎再也不接触(除了跟后端人员对接口), 致使曾经学过的服务端基础知识都已经遗忘的差很少了。为了再从新对后端有一些认识,和拓宽本身的知识面和技术空间啊,想从新认识一下服务端的技能。所以选择的了node来重新踏足后端的世界。前端
可是nodejs的服务端框架其实也有不少,好比express(使用的比较广),koa,egg,think之类的。通过考虑以后,我仍是选择了阿里的egg框架来进行学习。node
固然万事开头难,对于学习一个新的内容,尤为是计算机方面的东西,环境其实你开始的拦路虎,只有你尝试了到一果子的甜才会更加的多吃果子。所以对于egg的学习依旧是先搭建环境。git
egg.js是基于koa为底层,由阿里nodejs团队封装的企业级Web应用解决方案,以约束和规范化团队开发,帮助开发团队和开发人员下降开发和维护成本为核心设计理念的优秀解决方案。因此只须要node环境,就可以运行egg框架,所以其实egg的开发环境仍是比较容易搭建的。github
上面的这个就不用说了。作为一名前端开发,其实这个环境仍是有的。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 这个命令:入口:https://docs.npmjs.com/cli-commands/init.html浏览器
官方是这么进行描述npm init这个命令的:
Description
npm init
initializer in this case is an npm package named create-
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
initializer 在这个命令中是一个 npm 包 ,名称为 create-
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
作了什么:
package.json
文件发现 "bin": "./bin/create-egg.js"
./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建立了一个新的项目,而且对其如何建立项目有一个比较深刻的了解。