[譯]使用Babel7+nodemon打造你的Node.js項目開發

    

   

原文地址:Using babel7 with node(https://hackernoon.com/using-babel-7-with-node-7e401bc28b04)
原文做者:Will Willems
譯者:Bangood複製代碼

    想在你的Node.js項目中使用最新的js語法嗎?想讓你的項目具有熱更新能力嗎?本文的目標就是讓你可以搭建起這樣的一個基本項目。node


    你們以前可能用過babel的其餘低版本,可是今天咱們使用的babel7和其餘低版本有一些不一樣之處。git

   1.Babel7的相關包都掛在了@babel域下。好比以前的babel-cli包如今改名爲@babel/clinpm

   2.@babel/preset-env囊括了之前全部以年份命名的presets的功能。json

   3.babel-node從CLI中提取出來成了一個獨立的包:@babel/nodewindows

   想了解更多的關於babel7的變化的,能夠到官網查看。bash

   設置node項目結構

   咱們先打開咱們的命令行終端工具:windows下,win+R,輸入cmd,回車,進入命令行工具。babel

   建立咱們的項目文件夾:mkdir my-project工具

   切換到項目文件夾:cd my-projectui

   咱們用Git管理咱們的項目,因此,咱們執行一下:git init 命令。spa

   執行npm init初始化咱們的項目,會自動生成一個package.json文件。

   咱們再在當前目錄下建立兩個文件夾:dist和src。這是咱們的項目結構以下:

my-project
    |--dist
    |--src
    |--package.json
複製代碼

   讓咱們如今src目錄下建立一個咱們整個項目的入口文件server.js

my-project
    |--dist
    |--src
    |  |--server.js
    |--package.json複製代碼

    要在咱們的項目中使用babel7,咱們執行npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node. 

  爲了告訴babel如何使用@babel/preset-env包,咱們須要在咱們項目的根目錄下建立文件:.babelrc

// .babelrc
{  
"presets": ["@babel/preset-env"]
}複製代碼

    在編寫調試Node.js項目,修改代碼後,須要頻繁的手動close掉,而後再從新啓動,很是繁瑣。如今,咱們能夠經過npm install --save-dev nodemon,在咱們的項目中引入nodemon這個工具,它的做用是監聽代碼文件的變更,當代碼改變以後,自動重啓。

   到目前爲止,咱們的項目結構以下:

  

my-project    
    |--dist
    |--node_modules
    |--src
    |  |--server.js
    |--package.json
    |--.babelrc
複製代碼

    添加scripts到package.json

    在最後,咱們添加一些npm命令到咱們的package.json文件。

  • 添加start命令 :nodemon --exec babel-node src/server.js 。這個命令是告訴nodemon去監聽文件的變化,一旦檢測到有文件發生了變化,就會重啓並用babel-node去運行src/server.js文件。這個命令通常用於本地開發。
  • 添加build命令:babel src --out-dir dist。這個命令是告訴babel去編譯src裏的源文件,並將獲得的結果輸出到dist
  • 添加serve命令:node dist/server.js。這個命令是讓咱們用node運行咱們編譯好的文件。可能有人會問,爲何咱們不直接用nodemon去運行咱們的程序呢?這是由於相較於node,使用nodemon運行咱們的程序會使用更多的內存,花費更多的啓動時間。
    當咱們添加了以上三個命令後, package.json裏的內容就和下面的相似了:

   

{  
    "name": "my-project",
    "version": "1.0.0",
    "description": "",  
    "main": "src/server.js",
    "scripts": {    
        "start": "nodemon --exec babel-node src/server.js",    
        "build": "babel src --out-dir dist",    
        "serve": "node dist/server.js"  
     },  
    "author": "",  
    "license": "MIT",  
    "dependencies": {  },  
    "devDependencies": {    
        "@babel/cli": "7.4.3",    
        "@babel/core": "7.4.3",    
        "@babel/node": "7.2.2",    
        "@babel/preset-env": "7.4.3",    
        "nodemon": "1.18.11"  
      }}複製代碼
相關文章
相關標籤/搜索