zoukankan      html  css  js  c++  java
  • babel-node 和 nodemon

    概述

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

    我想要实现 2 个需求:

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

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

    参考资料:

    [译]使用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 点需要说明一下:

    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 这个参数。

  • 相关阅读:
    The library 'hostpolicy.dll' required to execute the application was not found in
    矩阵乘法
    2019-11-1
    四边形不等式的应用
    2019-10-30
    2019-10-29
    差分与前缀和
    平衡树SPLAY
    可爱的树链剖分(染色)
    cable tv network
  • 原文地址:https://www.cnblogs.com/yangzhou33/p/11504313.html
Copyright © 2011-2022 走看看