[译]使用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"  
      }}复制代码
相关文章
相关标签/搜索