koa2 + mysql 实现es6模块加载
问题分析
node环境下是默认情况下只支持comomJS,也就是使用module.exports 导出模块,然后用require 导入模块。
为什么非得用es6模块加载呢?
- 一方面es6的引入方式用多了,就不太习惯用commoJS。
- 另一方面从性能上考虑,commonJS引入模块时是将整个文件全部导入,当然也可以在导入时只使用其中某些对象。
// commonJS导入
const { test1, test2 } = require('./test')
// 上一步相当于
const test = require('./test')
const test1 = test.test1
const test2 = test.test2
// 而在es6中
import { test1, test2 } f
```javascript
rom './test'
// 这一句相当于之导入test中的test1,test2 其他的东西不会加载
具体实现
1、本项目是koa2脚手架项目。创建好项目后安装以下依赖:
npm i babel-core,
npm i babel-preset-env,
npm i -g babel-node
2、pacakege.json dev命令增加 --exec babel-node
"scripts": {
"start": "nodemon bin/www --exec babel-node",
"dev": "./node_modules/.bin/nodemon bin/www --exec babel-node",
"prd": "pm2 start bin/www",
"test": "echo \"Error: no test specified\" && exit 1",
"auto": "node config"
},
3、添加.babel文件
{
"presets": [
"env"
//"es2015"
],
"plugins": []
}