热搜:pottle
当前位置: 北京小瓶科技服务社区 » IT技术 » babel nodejs 语法提升es6 es7 标准用法
帖子状态  
本帖子共有 183 位阅读者, 2 个回复.
  • 回复
3条记录

admin

管理员
帖子
259 
金钱
665 
魅力
665 
威望
665 
注册
2013-04-06 
admin 发表于 2019-03-06 19:11   
babel nodejs 语法提升es6 es7 标准用法
babel nodejs 语法提升es7 标准用法


安装 babel-core 核心  babel-cli 命令行   babel-preset-env 预设
  1. npm install --save-dev @babel/core @babel/cli @babel/node @babel/preset-env
编辑根目录  .babelrc   env 默认最高语法都支持  node current 可以刚好转到当前node版本支持的语法,这样转换量最小
  1. {
  2.   "presets": [
  3.     ["babel/preset-env", {
  4.       "targets": {
  5.         "node": "current"
  6.       }
  7.     }]
  8.   ]
  9. }
生产环境和开发环境,假设 index.js 为项目入口文件 node start 为启动命令 ,编辑 package.json
  1. "scripts": {
  2.    "build": "rimraf dist/ && babel ./ --out-dir dist/ --ignore ./node_modules,./.babelrc,./package.json,./npm-debug.log --copy-files",
  3.    "start": "npm run build && node dist/index.js",
  4.     "test": "npx babel-node index"
  5. }
先运行build指令,让babel 把index.js 转换成 低版本JavaScript,并放到 dist 目录里面 ,然后直接执行低版本对应javaScript
该帖子于 2019-03-16 17:28 编辑过

admin

管理员
帖子
259 
金钱
665 
魅力
665 
威望
665 
注册
2013-04-06 
admin 发表于 2019-03-07 19:21   
RE:babel nodejs 语法提升es7 标准用法
babel v5 v6 v7 版本间差别很大并且不很兼容,以官方的文档为标准吧有事还得做插件


直接用 babel-node 运行不适合在生产环境中,会多出很多资源消耗,但是开发环境无所谓啦,生产环境需要将转换完成的的es5结果部署

更好的方案是用 webpack 打包成一个js文件,打包过程还支持babel翻译

package.json
  1.   "scripts": {
  2.     "test": "npx babel-node index",
  3.     "build": "npx webpack-cli"
  4.   },
webpackage.config.js
  1. //const path = require('path');
  2. let nodeExternals = require('webpack-node-externals');
  3. module.exports = {
  4.     context: __dirname,
  5.     target: 'node', // in order to ignore built-in modules like path, fs, etc.
  6.     externals: [nodeExternals()], // in order to ignore all modules in node_modules folder
  7.     entry: './src/index.js',
  8.     output: {
  9.         filename: 'main.js',
  10.         path: __dirname
  11.         //path: path.resolve(__dirname, 'dist')
  12.     },
  13.     mode: 'production',
  14.     module: {
  15.         rules: [
  16.             {
  17.                 test: /\.js$/,
  18.                 use: {
  19.                     loader: 'babel-loader',
  20.                     options: {
  21.                         presets: [
  22.                             ['@babel/preset-env',{
  23.                                 targets: {
  24.                                     "node": "current"
  25.                                 }
  26.                             }]
  27.                         ]
  28.                     }
  29.                 },
  30.                 exclude: '/node_modules/'
  31.             }
  32.         ]
  33.     }
  34. };
生产环境只需要上传  main.js 即可
该帖子于 2019-03-16 19:43 编辑过

admin

管理员
帖子
259 
金钱
665 
魅力
665 
威望
665 
注册
2013-04-06 
admin 发表于 2019-03-16 19:48   
RE:babel nodejs 语法提升es6 es7 标准用法
服务器端用 pm2 部署启动,这样自动重启
查看进程状态
日志输出到文件
...
全有了


ecosystem.config.js  放到跟目录即可
  1. module.exports = {
  2.   "apps": [
  3.     {
  4.       "name": "chat",
  5.       "script": "./main.js",
  6.       "watch": [
  7.         "resource"
  8.       ],
  9.       "error_file": "./logs/err.log",
  10.       "out_file": "./logs/out.log",
  11.       "log_date_format": "YYYY-MM-DD HH:mm Z"
  12.     }
  13.   ]
  14. }
最后
  1. pm2 start
即刻
  • 回复
3条记录
重庆时时彩 重庆时时彩 重庆时时彩 重庆时时彩 重庆时时彩 重庆时时彩 重庆时时彩 重庆时时彩 重庆时时彩 重庆时时彩