babel-node 和 nodemon

概述

今天我继续完善我作的用来 mock 前端数据的库:ym-mock前端

我想要实现 2 个需求:node

  1. 支持 es6,至少要能 import 吧。
  2. 修改了代码以后能自动热更新,不能我修改了服务器代码要手动重启吧。

最后经过查阅资料,用 babel-nodenodemon 实现了,我把方法记录下来,供之后开发时参考,相信对其余人也有用。python

参考资料:git

[译]使用Babel7+nodemon打造你的Node.js项目开发es6

babel-node

使用 babel-node 能够在 node 端自行编译并运行 es6 甚至 es7。安装方法以下:github

npm i @babel/core @babel/cli @babel/preset-env @babel/node -D // 或者使用 yarn

注意:我这里是局部安装的,全局安装的方法请自行看官方文档。npm

而后咱们须要在项目的根目录下面建立 .babelrc 文件:json

// .babelrc
{
  "presets": ["@babel/preset-env"]
}

最后修改 package.json,使用 babel-node 启动服务器入口文件便可:服务器

// 使用命令 npm run server 便可运行
"scripts": {
  "server": "babel-node server.js"
},

这里有 2 点须要说明一下:babel

  1. 为何要用 babel-node 而不用 @babel/register 或者 @babel/polyfill 库?由于后者只能用于打包过程。也就是说,须要先编译,而后才能运行。
  2. babel-node 只是用于非打包过程的,若是须要打包的话(好比用于生产环境),则不建议使用 babel-node,由于 babel-node 的打包体积会很是大。

nodemon

使用 nodemon 能够监听文件修改,而后让服务器自行重启

首先咱们安装 nodemon:

npm i nodemon -D // 或者使用 yarn

最后修改一下 package.json 的命令便可:

// 使用命令 npm run server 便可运行
"scripts": {
  "server": "nodemon --exec babel-node server.js"
},

说明一下为何要加 --exec 这个参数:这个参数是让 nodemon 运行非 node 程序的,好比运行 py 文件nodemon --exec "python -v" ./app.py。在这里由于咱们是用 nodemon 运行 babel-node,而不是 server.js,因此须要加 --exec 这个参数。

相关文章
相关标签/搜索