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 這個參數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM