nodejs后台系列--第四篇--koa(三)
一,koa的热加载配置
1,nodemon热加载中间件
它会去监听js代码的变化,从而重启服务器,而不需要再人为地手动区重启服务器了。
https://www.npmjs.com/package/nodemon
2,开发过程中安装这个依赖
npm install -D nodemon
3,使用nodemon来启动服务器代码
npx命令等价于node node_module/bin 就是运行这个目录下地文件。
看黄色的字可以知道,这里已经开始使用这个nodemon来监听js代码了。
当我改动js文件的时候,它就会自动运行了。不需要手动再修改一遍。
4,更改package.json的脚本,让script来运行服务器
于是,这个服务器,就可以使用npm run start来运行了。
二,配置webpack,让我们的项目能够使用es6的语法
1,安装webpack。webpack4.0之后,webpack和webpack cli已经独立了,所以都要安装
npm install -D webpack webpack-cli
2,新建webpack.config.js文件作为webpack的配置文件
npm install -D clean-webpack-plugin webpack-node-externals @babel/core @babel/preset-env babel-loader cross-env
编写webpack.config.js的配置
const path=require('path')
const nodeExcternals=require('wepack-node-externals') //排除一些我们不会使用到的node模块
const {CleanWebpackPlugin}=require('clean-webpack-plugin') //帮助我们删除旧的文件(如修改了图片文件夹名字后打包,旧打包处的文件夹还在),然后在进行打包。const webpackconfig={target:'node',mode:'development',entry:{srever:path.join(__dirname,'src/index.js')},output:{filename:'[name].bundle.js', //打包出口的文件名字,原有名字.bundle.jspath:path.join(__dirname,'./dist')},// devtools:'eval-source-map', //方便后期调试的module:{rules:[{test: /\.(js|jsx)$/,use:{loader:'babel-loader' //匹配到js文件,就使用babel来处理},exclude:[path.join(__dirname,'/node_modules')] //排除这个文件夹下的js文件}]},externals:[nodeExcternals()], //排除一些我们不会使用到的node模块plugins:[new CleanWebpackPlugin()],// node:{// console:true,// global:true,// process:true,// Buffer:true,// __filename:true,// __dirname:true,// setImmediate:true,// path:true// }
}module.exports=webpackconfig
3,新建.babelrc,然后配置
{"presets": [["@babel/preset-env",{"targets":{"node":"current"}}]]
}
然后运行npx webpack 就可以打包成功
4,这时候,就可以使用es6语法
npm install --save-dev @babel/node
如果不用webpack打包,而是直接写成es6的语法,就需要安装这个:
改写成es6语法:
运行项目:
npx babel-node src/index.js
如果想要热加载,就这样写:
npx nodemon --exec babel-node src/index.js
使用package.json来写就是:
"scripts": {"start": "nodemon src/index.js","start:es6":"nodemon --exec babel-node src/index.js"},
nodejs后台系列--第四篇--koa(三)相关推荐
- 深入理解javascript作用域系列第四篇——块作用域
前面的话 尽管函数作用域是最常见的作用域单元,也是现行大多数javascript最普遍的设计方法,但其他类型的作用域单元也是存在的,并且通过使用其他类型的作用域单元甚至可以实现维护起来更加优秀.简洁的 ...
- UR机器人装箱姿态_UR10 RG2机械臂手臂+RealsenseZR300 机器人手眼标定 系列第四篇
UR10 RG2机械臂手臂+RealsenseZR300 机器人手眼标定 系列第四篇 发布时间:2018-09-18 17:43, 浏览次数:1180 , 标签: UR RG RealsenseZR ...
- jdbc代码_凯哥带你从零学大数据系列之数据库篇---第三章:JDBC基础
温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...
- 互联网大脑的情绪,智商和梦境-互联网神经学系列第四篇
这是互联网神经学系列的第四篇文章"互联网大脑的情绪.智商和梦境,互联网神经心理学" 1.互联网神经心理学的提出 我们在互联网神经学系列的第三篇文章中详细介绍了互联网大脑的架构和运行 ...
- Android-PickerView系列之封装篇(三)
注:此文交由跟我一起维护Android-PickerView 项目的伙伴totcw写的,友情链接:http://blog.csdn.net/totcw 一.概述 这是Android-pickervie ...
- 微信商城开发系列第四篇 不写代码玩转微信公众号
本系列文章转载自:CSDN博客walkingmanc的专栏 为什么叫不写代码玩转微信公众号呢? 我们大家都知道,微信公众号有两种模式,一种是编辑模式,一种是开发模式.所谓的不写代码玩转微信公众号,其实 ...
- 【Flink系列】部署篇(三):Native k8s部署高可用Flink集群实战
上一篇博文介绍了如何独立部署一个高可用的Flink集群,本篇介绍如何用Native k8s去部署高可用的Flink 集群.本篇介绍的集群构建在AWS上,和构建在自己的服务器相比,主要区别在文件系统的选 ...
- 深入学习jQuery选择器系列第四篇——过滤选择器之属性选择器
前面的话 属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素,对应于CSS中的属性选择器.属性过滤选择器可分为简单属性选择器.具体属性选择器和条件属性选择器三种.本文将详细该部分内容 简单属性选 ...
- Redis系列-第四篇持久化与事务
一.持久化 Redis是一个内存数据库,为了保证数据的持久性,它提供了两种持久化方案: RDB方式(默认) AOF方式 持久化功能有效地避免因进程退出造成的数据丢失问题, 当下次重启时利用之前持久化的 ...
- 记一次完整的RPG Maker MV游戏逆向系列第四篇
前言 阅读本篇前请先看之前的几篇分析噢,不然可能会缺失一些前置知识 这篇还是讲 RPG Maker MV 的游戏分析,主要是如何分析一种通过 GameusQuestSystems.js 的加密手段 工 ...
最新文章
- 手动添加Cookie
- 初识Quartz(三)
- XML学习总结(2)——XML简单介绍
- 写Java程序要体现面向对象
- 科大星云诗社动态20210306
- Netty-案例 WebSocket与netty实现长连接案例(代码注释详解)
- springboot开始
- sql instr函数_如何实现SQL INSTR()函数?
- GSL数学库解多参数方程
- 经典 SQL 数据库笔试题及答案整理
- KSO-.NETCore部署CentOS7.5中验证码绘图Bitmap类型报错“The type initializer for ‘Gdip‘ threw an exception ”
- 百度地图-手动JS触发自定义Marker覆盖物点击事件
- js和jquery获取父级元素、子级元素、兄弟元素的方法
- 解决U盘中文件全部变成快捷方式的问题
- 解决打开xml文件没有代码
- 微信小程序输入框字数限制以及计算
- u盘连接计算机找不到,重装系统后U盘插入电脑怎么没反应?找不到U盘盘符解决办法...
- 【Macbook】精选的MAC电脑软件推荐
- 物理层(网络协议相关
- 一款优秀的BIDS辅助工具-BIDS Helper