上篇文章我們說到了使用Mongoose進(jìn)行增刪改查的操作,我們都知道ES6新增了很多的新特性巫员,那么我們?nèi)绻贙oa項目中使用ES6語法會如何呢庶香?
ES6, 全稱 ECMAScript 6.0 简识,是 JavaScript 的下一個版本標(biāo)準(zhǔn)赶掖,其中提供了很多的新語法新特性,但是很多情況下他是沒有辦法直接進(jìn)行使用的七扰,需要使用Babel來進(jìn)行轉(zhuǎn)換奢赂,那么我們的Koa項目是否能夠正常使用?
- 首先我們在Koa項目中簡單的進(jìn)行測試一下颈走。
//首先我們安裝koa模塊
npm install koa
//然后在App.js里面進(jìn)行引入膳灶,通常我們使用都是
const Koa = require('koa')
- 上面的這種寫法是我們ES5中所使用的,那么我們ES6使用的則是import的方法進(jìn)行引入立由,我們接下來試試看轧钓。
import Koa from 'koa'
- 在引入完成后,我們運行項目測試一下看看
import Koa from 'koa'
^^^
SyntaxError: Unexpected identifier
at Module._compile (internal/modules/cjs/loader.js:872:18)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)
at Module.load (internal/modules/cjs/loader.js:790:32)
at Function.Module._load (internal/modules/cjs/loader.js:703:12)
at Function.Module.runMain (internal/modules/cjs/loader.js:999:10)
at internal/main/run_main_module.js:17:11
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! koa-test@1.0.0 start: `node app.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the koa-test@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
- 很明顯锐膜,我們的項目報錯了毕箍。那么原因就是因為它無法識別我們import的語法,所以我們就需要使用到Babel轉(zhuǎn)換器來將ES6語法轉(zhuǎn)化為ES5語法道盏。
npm install @babel/core @babel/preset-env @babel/register @babel/cli @babel/node
- 安裝完成后而柑,我們寫一個入口文件index.js然后將內(nèi)容與Babel引入在index.js中去。
require('@babel/register');
require('./src/app');
- 接下來我們還需要一步則是需要在根目錄下創(chuàng)建.babelrc文件在文件內(nèi)進(jìn)行babel的配置
{
"presets": ["@babel/preset-env"]
}
- 官網(wǎng)描述說荷逞,babel就是下一代JavaScript 語法的編譯器媒咳。那么.babelrc文件就是Babel的配置文件。在進(jìn)行配置完成后种远,我們就可以嘗試運行了
//當(dāng)然 我簡單的在我的文件中console一下
console.log('GoodGoodGoGoGo')
- 如我們所看涩澡,命令行不再報錯,并且正常進(jìn)行了運行院促。那么我們除了這個以外還是需要進(jìn)行打包拿到轉(zhuǎn)換后的代碼的筏养。那么我們就在package.json中進(jìn)行配置啟動項。
"build": "babel src --watch --out-dir dist"
-
然后我們執(zhí)行npm run build嘗試
-
可以看到我們的命令行提示成功進(jìn)行了轉(zhuǎn)換常拓。并且在目錄中多出dist文件夾
-
我們的Babel已經(jīng)自動幫我們完成了轉(zhuǎn)換渐溶,這樣我們就可以舒服的在Koa項目中使用ES6的語法啦。