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建立了一個新的項目,而且對其如何建立項目有一個比較深刻的瞭解。

相關文章
相關標籤/搜索