[译]使用Babel7+nodemon打造你的Node.js项目开发

栏目: Node.js · 发布时间: 5年前

内容简介:想在你的Node.js项目中使用最新的js语法吗?想让你的项目具备热更新能力吗?本文的目标就是让你能够搭建起这样的一个基本项目。大家之前可能用过babel的其他低版本,但是今天我们使用的babel7和其他低版本有一些不同之处。1.Babel7的相关包都挂在了@babel域下。比如之前的
原文地址:Using babel7 with node(https://hackernoon.com/using-babel-7-with-node-7e401bc28b04)
原文作者:Will Willems
译者:Bangood复制代码

想在你的Node.js项目中使用最新的js语法吗?想让你的项目具备热更新能力吗?本文的目标就是让你能够搭建起这样的一个基本项目。 [译]使用Babel7+nodemon打造你的Node.js项目开发

大家之前可能用过babel的其他低版本,但是今天我们使用的babel7和其他低版本有一些不同之处。

1.Babel7的相关包都挂在了@babel域下。比如之前的 babel-cli 包现在更名为 @babel/cli

2. @babel/preset-env 囊括了以前所有以年份命名的presets的功能。

3. babel-node 从CLI中提取出来成了一个独立的包: @babel/node

想了解更多的关于babel7的变化的,可以到官网查看。

设置node项目结构

我们先打开我们的命令行终端工具:windows下, win+R ,输入 cmd ,回车,进入命令行工具。

创建我们的项目文件夹: mkdir my-project

切换到项目文件夹: cd my-project

我们用Git管理我们的项目,所以,我们执行一下: git init 命令。

执行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"  
      }}复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

图解机器学习

图解机器学习

杉山将 / 许永伟 / 人民邮电出版社 / 2015-4 / 49

本书用丰富的图示,从最小二乘法出发,对基于最小二乘法实现的各种机器学习算法进行了详细的介绍。第Ⅰ部分介绍了机器学习领域的概况;第Ⅱ部分和第Ⅲ部分分别介绍了各种有监督的回归算法和分类算法;第Ⅳ部分介绍了各种无监督学习算法;第Ⅴ部分介绍了机器学习领域中的新兴算法。书中大部分算法都有相应的MATLAB程序源代码,可以用来进行简单的测试。 本书适合所有对机器学习有兴趣的初学者阅读。 187张图......一起来看看 《图解机器学习》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具