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": []
}
本文探讨了在Node.js环境中,为何要从CommonJS转向ES6模块加载。主要原因是ES6的按需导入能提高性能,只加载所需的部分。在Koa2项目中,通过配置Babel和nodemon,实现了对ES6模块的支持。步骤包括安装相关依赖,修改package.json脚本,并创建.babelrc文件进行预设配置。

被折叠的 条评论
为什么被折叠?



