背景

用于项目中使用了阿里云的OSS功能,而阿里官方的Node.js类库(ali-oss)是基于ES6写的,因此应用需要在ES6环境下运行。

Node

在本地(MBP)上,通过修改package.json文件中的script来更改环境,代码如下:

  "scripts": {"start": "node --harmony server.js"},

添加--harmony后,通过nodemon运行没有问题。

PM2

在将应用通过PM2部署到阿里云的ECS(CentOS)中的时候,一直报错。提示无法正确运行,错误显示如下:

tegaoya-1 (err): /home/eee/www/tegaoya/production/source/node_modules/ali-oss/lib/client.js:295
tegaoya-1 (err): proto.request = function* (params) {
tegaoya-1 (err):                         ^
tegaoya-1 (err): SyntaxError: Unexpected token *
tegaoya-1 (err):     at Module._compile (module.js:439:25)
tegaoya-1 (err):     at Object.Module._extensions..js (module.js:474:10)
tegaoya-1 (err):     at Module.load (module.js:356:32)
tegaoya-1 (err):     at Function.Module._load (module.js:312:12)
tegaoya-1 (err):     at Function._load (/usr/lib/node_modules/pm2/node_modules/pmx/lib/transaction.js:62:21)
tegaoya-1 (err):     at Module.require (module.js:364:17)
tegaoya-1 (err):     at require (module.js:380:17)
tegaoya-1 (err):     at Object.<anonymous> (/home/eee/www/tegaoya/production/source/libs/AliOssStorage.js:4:11)
tegaoya-1 (err):     at Module._compile (module.js:456:26)
tegaoya-1 (err):     at Object.Module._extensions..js (module.js:474:10)
tegaoya-1 (err):     at Module.load (module.js:356:32)
tegaoya-1 (err):     at Function.Module._load (module.js:312:12)
tegaoya-1 (err):     at Function._load (/usr/lib/node_modules/pm2/node_modules/pmx/lib/transaction.js:62:21)
tegaoya-1 (err):     at Module.require (module.js:364:17)
tegaoya-1 (err):     at require (module.js:380:17)
tegaoya-1 (err):     at Object.<anonymous> (/home/eee/www/tegaoya/production/source/app_server/controllers/upload.js:3:21)

给PM2添加ES6的支持

通过Google,发现给PM2配置ES6支持的方法如下:

命令行

命令行中添加--node-args="--harmony"即可让应用以ES6运行:

$ pm2 start my_app.js --node-args="--harmony"

配置文件

在配置文件(ecosystem.json)中,添加node_args属性来添加ES6的支持:

[{"name" : "ES6","script" : "es6.js","node_args" : "--harmony"
}]

问题

但是,在按照以上配置操作后,依然无法启用ES6的支持,还是报错。在查看node的版本后,发现了问题所在:

$ node -v
v0.10.*

好吧,看来是CentOS系统中yum自带的node版本不支持ES6,于是着手升级:

卸载node

通过命令:

$ yum remove nodejs

卸载老版本的nodejs

安装新版本

按照官方的文档,通过如下命令安装4.*的LTS版本(root下):

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs

安装结束后,确认版本:

$ node -v
v4.4.4

尝试

再次尝试通过PM2部署,提示成功,通过pm2 logs查看日志,没有报错。问题解决!

PM2中无法开启ES6的解决方案相关推荐

  1. nuxt 脚手架创建nuxt项目中不支持es6语法的解决方案

    nuxt 脚手架创建nuxt项目中不支持es6语法的解决方案 参考文章: (1)nuxt 脚手架创建nuxt项目中不支持es6语法的解决方案 (2)https://www.cnblogs.com/jk ...

  2. php5.4curl报错,PHP中使用CURL报错解决方案 rip curl php curl开启 curl下

    准备使用CURL实现get和post方法时报错. Eg:CURL初始化时,报如下错误: Fatal error: Call to undefinedfunction curl_init() in C: ...

  3. M1 外接2K显示器开启HiDPI 的解决方案

    MacBook M1 外接显示器开启HiDPI的解决方案 MacBook M1 外接2K显示器开启HiDPI 的解决方案 一.开启原生HiDPI方法 1.第一步:打开系统偏好设置 --> 显示器 ...

  4. 计算机硬件加速怎么开,电脑中如何开启3d硬件加速|电脑开启3d硬件加速图文教程...

    电脑中如何开启3d硬件加速?这是近来不少朋友都向小编咨询的问题.其实,硬件加速就是利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性.下面,系统城小编就给大家带来的关于3d硬件加速怎么开启的内容 ...

  5. Linux中网络连接不上解决方案大全

    Linux中网络连接不上解决方案大全 能解决的话点个赞呗,人家有动力的啦 感谢大家的支持,浏览量上两千了,虽然没人点赞,很开心,得到大家的支持,和认可 在安装虚拟时遇到本地网络连接不上或者用xshel ...

  6. 博主已开启评论精选什么意思_win10拨号上网不能开启移动热点 解决方案

    一般情况下 win10有热点,但拨号上网模式下开启不了.错误提示为:我们无法设置移动热点,因为你的电脑未建立以太网,WIFI或手机网络连接.这个问题可能出现在拨号上网连接的设备上. 下面解决win10 ...

  7. 分布式架构-ZK分布式锁中死锁和羊群效应解决方案

    分布式架构-ZK分布式锁中死锁和羊群效应解决方案 一.效果演示 有两个接口,GetTest2和GetTest3,分别都加上了@BxcZkLock注解,其中value 代表是否包含事物,如果是,则会在方 ...

  8. 老项目的#iPhone6与iPhone6Plus适配#iOS8无法开启定位问题和#解决方案#

    本文永久地址为 http://www.cnblogs.com/ChenYilong/p/4020359.html,转载请注明出处. iOS8的定位和推送的访问都发生了变化, 下面是iOS7和iOS8申 ...

  9. SharePoint2013 访问“/”应用程序中的服务器错误。解决方案:

    SharePoint2013 访问"/"应用程序中的服务器错误.解决方案: 在浏览器中键入访问SharePoint服务器地址时,报如下错误 按照,提示修改web.config文件. ...

最新文章

  1. 我们需要的不仅仅是一个车模轨迹
  2. 计算机为什么会出现网络用户,告诉你电脑显示无internet访问权限怎么办
  3. python装饰器作用-Python 装饰器的作用
  4. python重复执行_关于计时器:在Python中每x秒重复执行一次函数的最佳方法是什么?...
  5. SQLServer性能优化之查询提示
  6. 安全和anti-sapm的HTML5效果如何
  7. Python 3 并发编程多进程之进程同步(锁)
  8. Windows API 进程状态信息函数
  9. 大数据之-Hadoop源码编译_源码编译的意义---大数据之hadoop工作笔记0044
  10. php 可用内存大小,关于php:致命错误:允许的内存大小为67108864字节耗尽
  11. 阿里技术专家带你使用Spring框架快速搭建Web工程项目
  12. C++复习(五)(const、static、inline、引用与指针、new/delete)
  13. 100道Python经典练习题.pdf(附答案)
  14. Photoshop cc 2019安装与破解(附资源)
  15. ps2021中文版完美逆袭
  16. 应用|5G时代10大应用场景!
  17. 安装WordPress的一些注意事项
  18. 贵州大学计算机研究生排名,贵大计算机研究生怎么样?
  19. c语言实验作业在dev蜗居的思路,关于C语言的问题:如何用C语言实现n阶行列式和矩阵的值...
  20. python爬取淘宝天猫评论(通过cookie)

热门文章

  1. Nginx实现静态代理,负载均衡,前后端分离
  2. Centos7.6下安装Python3.7
  3. IIS7.5 安全配置研究(推荐)
  4. Shell脚本实现生成SSL自签署证书
  5. Bootstrap4默认样式不对胃口?教你使用NPM+Webpack+SASS来定制
  6. vue开发搭建(npm安装 + vue脚手架安装)
  7. 转载-如何应对在线故障
  8. Linux Hbase1.2.6 安装及使用(1)
  9. TypeScript中的枚举类型
  10. 安卓学习-界面-ui-Toast