• 端午假期国内游客超8900万人次 2019-08-20
  • 河南宝丰:一位乡村工匠的“汝瓷梦” 2019-08-16
  • 沙特法庭判处诽谤王室腐败者5年监禁并禁止出国 2019-08-16
  • 史上最大锦鲤!南京大二女生一次收到618个快递 2019-08-03
  • 无论是否想怀孕 这串数字女性要知道 2019-07-30
  • 候选案例:“天使之心”儿童先心病救助项目 2019-07-30
  • 正义感爆棚:流浪狗“路见不平” 赶跑打劫男子 2019-07-25
  • 男子谎称哥哥当师长能帮上军校 骗13万余元被抓 2019-07-25
  • 人民网与呼和浩特市在京签署战略合作协议 2019-07-11
  • 夏天保护心脑血管办好四件事 2019-07-11
  • 十大城市二手房市场“整体降温”态势难改 2019-07-05
  • 哪个不在痛打落水狗呢 2019-07-05
  • 中共山西省委组织部公示 2019-06-25
  • 中共台湾地下党为何覆灭 2019-06-25
  • 机场集团领导班子2017年度综合考核再获“好”等次 2019-06-13
  •  
    热搜:pottle北京小瓶科技服务社区
    当前位置: 北京小瓶科技服务社区 ? IT技术 ? babel nodejs 语法提升es6 es7 标准用法
    帖子状态  
    本帖子共有 505 位阅读者, 2 个回复.
    • 回复
    3条记录

    时时彩后一稳定100% www.d2olt.com admin

    管理员
    帖子
    280 
    金钱
    718 
    魅力
    718 
    威望
    718 
    注册
    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

    管理员
    帖子
    280 
    金钱
    718 
    魅力
    718 
    威望
    718 
    注册
    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

    管理员
    帖子
    280 
    金钱
    718 
    魅力
    718 
    威望
    718 
    注册
    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条记录
  • 端午假期国内游客超8900万人次 2019-08-20
  • 河南宝丰:一位乡村工匠的“汝瓷梦” 2019-08-16
  • 沙特法庭判处诽谤王室腐败者5年监禁并禁止出国 2019-08-16
  • 史上最大锦鲤!南京大二女生一次收到618个快递 2019-08-03
  • 无论是否想怀孕 这串数字女性要知道 2019-07-30
  • 候选案例:“天使之心”儿童先心病救助项目 2019-07-30
  • 正义感爆棚:流浪狗“路见不平” 赶跑打劫男子 2019-07-25
  • 男子谎称哥哥当师长能帮上军校 骗13万余元被抓 2019-07-25
  • 人民网与呼和浩特市在京签署战略合作协议 2019-07-11
  • 夏天保护心脑血管办好四件事 2019-07-11
  • 十大城市二手房市场“整体降温”态势难改 2019-07-05
  • 哪个不在痛打落水狗呢 2019-07-05
  • 中共山西省委组织部公示 2019-06-25
  • 中共台湾地下党为何覆灭 2019-06-25
  • 机场集团领导班子2017年度综合考核再获“好”等次 2019-06-13
  • e乐博线上娱乐城合营商 电子游戏帝国 竞彩足球下载 打羽毛球会减肥吗 快乐十分规律怎样看 福彩东方6+1走势图表 欢乐升级游戏下载 网上能购买大乐透吗 天津快乐10分直播 体彩p3杀码家彩网 排球比分制度 足彩进球彩结果 买彩票怎么选号 安徽快三官网 25选7中奖规则