美文网首页
node 服务 自动重启

node 服务 自动重启

作者: 一爷之秋 | 来源:发表于2019-08-19 11:02 被阅读0次

本文思路

本地使用babel-node 直接运行es6源码。
上线时将项目通过babel打包编译到dist目录下之后,发布编译后的文件

项目结构

project
    -- dist //编译好的文件
    -- node_modules // 安装包
    -- src // 项目源代码
       -- api // api接口
       -- db // 连接数据库
       -- model // 数据处理层
       -- router.js // 路由
       -- server,js // 服务
    -- babel.config.js // babel配置
    -- package.json 
    -- README.md

1.安装@babel/cli @babel/core @babel/preset-env

  $ npm install --save-dev @babel/cli @babel/core @babel/preset-env

2.在项目根目录下创建babel.config.js 文件

module.exports = {
  presets: ["@babel/preset-env"]
}

3.修改package.json 文件中scripts

 "scripts": {
    "build": "babel src -d dist",
    "start": "npm run build && node dist/server.js"
  },

此时运行会报错,还需要安装@babel/runtime @babel/plugin-transform-runtime

$ npm install --save @babel/runtime
$ npm install --save-dev @babel/plugin-transform-runtime

修改babel.config.js文件

module.exports = {
  presets: ["@babel/preset-env"],
  plugins: ["@babel/plugin-transform-runtime"],
};

重启服务,在浏览器中请求api,可以看到代码编译成功并成功运行。
此时还有一个问题,每次修改完代码,都需要手动关闭重启服务,非常麻烦。

为解决上面问题,引入babel-watch 包,该包内部集成了@babel/node,在配置了babel后,可直接编译运行es6源代码,并实现watch 源代码修改保存,自动重启服务。

$ npm install babel-watch --save-dev

babel-watch的-w参数为watch,后跟dir为监测的文件夹
-w, --watch [dir] Watch directory "dir" or files. Use once for each directory or file to watch
还支持debugger,具体其他参数请参考npm,babel-watch
安装成功之后,修改scripts如下,

"scripts": {
    "build": "babel src -d dist",
    "start": "babel-watch -w src src/serve.js",
    "deploy": "npm run build && npm run deployOnly",
    "deployOnly": "gh-pages -d dist --message $(git symbolic-ref --short -q HEAD)-$(git rev-parse --short HEAD)",
  },

在本地启动服务时,运行

$ npm run start

上线将打包后的dist目录发布到服务器

$ npm run deploy

相关文章

网友评论

      本文标题:node 服务 自动重启

      本文链接:https://www.haomeiwen.com/subject/jjxssctx.html