• 机场集团领导班子2017年度综合考核再获“好”等次 2019-06-13
  • 应该透过现象看本质,看到产生腐败的根源,产生腐败的根源在于社会财富被个人占为私有的私有制,只要存在私有制,就有私有特权,掌握公权力的人一旦把公权力当作... 2019-05-22
  • 妙招-热门标签-华商生活 2019-05-22
  • (原创)穿救生衣应成赛龙舟的标配 2019-05-19
  • 山南市全力推进美丽山南建设 2019-05-19
  • 回复@老老保老张工:计划不要批准?那不还是你自己做主?有必要走形式么? 2019-04-26
  • 朗斯卫浴向伟昌:舒服才是完美卫浴空间的必备要素 2019-04-26
  • 【那曲天气】最新那曲今天天气,实时提供那曲气温、空气质量、24小时天气预报、生活指数查询 2019-04-16
  • 中直机关优良“家风家训”格言【3】 2019-04-14
  • 甜粽还是咸粽?来看动物们的专属粽子有什么馅儿 2019-04-14
  • 吴燕生任中国航天科技集团有限公司董事长 2019-04-11
  • 广州白云一街道自组群防群治奇兵 建起红棉防线 2019-04-11
  • 汉川传统产业迈向中高端 将冲刺全国百强县 2019-04-10
  • 【学习时刻】参会专家罗怀臻:文化创新要实现从内涵到形式的整体性审美转换 2019-04-09
  • 日本最大规模玩具展会开幕:AI唱“主角” 2019-03-25
  •  
    热搜:pottle北京小瓶科技服务社区
    当前位置: 北京小瓶科技服务社区 ? IT技术 ? babel nodejs 语法提升es6 es7 标准用法
    帖子状态  
    本帖子共有 362 位阅读者, 2 个回复.
    • 回复
    3条记录

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

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

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

    管理员
    帖子
    269 
    金钱
    693 
    魅力
    693 
    威望
    693 
    注册
    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条记录
  • 机场集团领导班子2017年度综合考核再获“好”等次 2019-06-13
  • 应该透过现象看本质,看到产生腐败的根源,产生腐败的根源在于社会财富被个人占为私有的私有制,只要存在私有制,就有私有特权,掌握公权力的人一旦把公权力当作... 2019-05-22
  • 妙招-热门标签-华商生活 2019-05-22
  • (原创)穿救生衣应成赛龙舟的标配 2019-05-19
  • 山南市全力推进美丽山南建设 2019-05-19
  • 回复@老老保老张工:计划不要批准?那不还是你自己做主?有必要走形式么? 2019-04-26
  • 朗斯卫浴向伟昌:舒服才是完美卫浴空间的必备要素 2019-04-26
  • 【那曲天气】最新那曲今天天气,实时提供那曲气温、空气质量、24小时天气预报、生活指数查询 2019-04-16
  • 中直机关优良“家风家训”格言【3】 2019-04-14
  • 甜粽还是咸粽?来看动物们的专属粽子有什么馅儿 2019-04-14
  • 吴燕生任中国航天科技集团有限公司董事长 2019-04-11
  • 广州白云一街道自组群防群治奇兵 建起红棉防线 2019-04-11
  • 汉川传统产业迈向中高端 将冲刺全国百强县 2019-04-10
  • 【学习时刻】参会专家罗怀臻:文化创新要实现从内涵到形式的整体性审美转换 2019-04-09
  • 日本最大规模玩具展会开幕:AI唱“主角” 2019-03-25