babel-node 和 nodemon
概述
今天我继续完善我做的用来 mock 前端数据的库:ym-mock。
我想要实现 2 个需求:
- 支持 es6,至少要能 import 吧。
- 修改了代码之后能自动热更新,不能我修改了服务器代码要手动重启吧。
最后通过查阅资料,用 babel-node 和 nodemon 实现了,我把方法记录下来,供以后开发时参考,相信对其他人也有用。
参考资料:
[译]使用Babel7+nodemon打造你的Node.js项目开发
babel-node
使用 babel-node 可以在 node 端自行编译并运行 es6 甚至 es7。安装方法如下:
npm i @babel/core @babel/cli @babel/preset-env @babel/node -D // 或者使用 yarn
注意:我这里是局部安装的,全局安装的方法请自行看官方文档。
然后我们需要在项目的根目录下面创建 .babelrc 文件:
// .babelrc
{
"presets": ["@babel/preset-env"]
}
最后修改 package.json,使用 babel-node 启动服务器入口文件即可:
// 使用命令 npm run server 即可运行
"scripts": {
"server": "babel-node server.js"
},
这里有 2 点需要说明一下:
- 为什么要用 babel-node 而不用 @babel/register 或者 @babel/polyfill 库?因为后者只能用于打包过程。也就是说,需要先编译,然后才能运行。
- 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 这个参数。
babel-node 和 nodemon的更多相关文章
- 使用babel与@babel/node
安装 yarn add -D @babel/cli @babel/node 编译entry-server.js yarn babel ./src/ssr/entry-server.js --prese ...
- node调试工具--nodemon使用简介
这个工具和node-supervisor基本上是一致的,但是其功能比较强大,个人觉得在开发环境还是用 nodemon,因为配置比较方便,文档也很清晰.所以这里先主要讲 nodemon. nodemon ...
- node调试工具--nodemon
- node工具之nodemon
nodemon nodemon是一种工具,可以自动检测到目录中的文件更改时通过重新启动应用程序来调试基于node.js的应用程序. 安装 npm install -g nodemon //或 npm ...
- 新建node工程
之前各种node工程都是东抄抄,西抄抄的. 用ng的cli之后,发现非常舒服.所以把node新建工程的种种记录一下. node+babel, 直接按es6标准写就好了, 不需要一定写ts再转码了( ...
- GraphQL-- 使用Apollo Server搭建Node服务端
一.关于Apollo Server Apollo Server是一种使用JS创建GraphQL服务端的一个方案.它的兼容性比较好,可以很好地和GraphQL客户端进行兼容.同时它可以 独立作为服务端进 ...
- gulp+browserSync+nodemon 实现express 全端自动刷新的实践
学习过程宝宝心里苦,不能怨政府.. 兴趣所致,一直放不下nodejs的学习,时隔多日,又把express捡起来打算重新再学学,一直没什么太大的长进,和实际的项目经验.真的醉了,太懒了. 今天在重新研究 ...
- idea 配置node Run
1.node 2.nodemon 支持热部署 3.supervisor 支持执部署
- [Node.js]expressjs简单测试连接mysql
下载好node.js和通过npm安装好express.js后,先写package.json { "name": "application-name", &quo ...
随机推荐
- 6.纯css绘制叮当猫
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- js 向数组对象中添加属性和属性值
let resultList = [{"name":"a1"},{"name":"b1"}] resultList.fo ...
- 2019-11-29-win10-uwp-轻量级-MVVM-框架入门-2.1.5.3199
title author date CreateTime categories win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 lindexi 2019-11-29 10:16: ...
- CNN实战篇-手把手教你利用开源数据进行图像识别(基于keras搭建)
我一直强调做深度学习,最好是结合实际的数据上手,参照理论,对知识的掌握才会更加全面.先了解原理,然后找一匹数据来验证,这样会不断加深对理论的理解. 欢迎留言与交流! 数据来源: cifar10 (其 ...
- SpringBootMVC02——SpringDataJpa与ThymeLeaf
大纲 - SpringDataJpa进阶使用- SpringDataJpa自定义查询- 整合Servlet.Filter.Listener- 文件上传- Thymeleaf常用标签 1.整合Servl ...
- POSTGRESQL 批量权限 管理方法
原博地址 https://yq.aliyun.com/articles/41512?spm=a2c4e.11153940.0.0.20b7640fcDiFQA 关于PostgreSQL的逻辑架构和权限 ...
- 如何创建DLL,以及注入DLL
为了防止忘记,特记下 DLL的创建,在VS2017中选择dll的创建 // dllmain.cpp : Defines the entry point for the DLL application. ...
- 报表解决方案Telerik Reporting发布R2 2019 SP1|支持MS Access
Telerik Reporting拥有直观.无代码的Win.网页与PDF报表的创建功能,直观的设计与具有特定风格的报表,无代码数据打包.向导.语法开发工具.自动操作.分类整理.过滤.有条件格式化.转化 ...
- python爬虫及结巴分词《攀登者》影评分析
<攀登者>影评爬取及分析 0.项目结构 其中simkai.ttf为字体文件,Windows查看系统自带的字体 C:\Windows\Fonts 一.爬取豆瓣影评数据 # -*- codin ...
- Java数组反转
public static void reverseArr(int[] arr) { /* 循环中定义变量min=0最小索引 max=arr.length‐1最大索引 min++,max‐‐ */ f ...