添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

我们的天猫精灵服务是用Node.js做的,今天在该项目中添加一个包 nzh ,我是在 package.json 里面直接添加的, 然后运行 npm install ,运行后会安装 nzh 包,同时也会更新其他需要更新的包
然后Debug,测试通过没有问题,接着发布到服务器上。
服务器上运行 forever start xx.js ,竟然stopped。
看了下log,竟然报错了,测试环境没有问题,生产环境却报错了。
报错如下:

/xxx/node_modules/mqtt/node_modules/ws/lib/websocket.js:345
      ...options
      ^^^
SyntaxError: Unexpected token ...
    at Object.exports.runInThisContext (vm.js:76:16)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/xxx/node_modules/mqtt/node_modules/ws/index.js:3:19)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)

SyntaxError: Unexpected token ...
翻译中文为
语法错误:意外的令牌...
很明显报错的为...,语法错误,这肯定是ES特性不支持的问题,不支持那就是Node.js的版本的问题

  • 查看服务器Node.js版本为6.9.2
  • 查看测试环境Node.js版本为12.13.1

果然版本不一致,考虑到服务器的Node.js版本确实有点低了,决定升级到最新稳定版本

  1. 安装Node.js版本管理工具
npm install -g n
  1. 安装最新稳定版 node
npm lts
  1. 使用 n 切换版本

在这里插入图片描述
4. 查看Node.js版本

奇怪了,没有切换成功
通过搜索找到了原因:

n 默认安装路径是 /usr/local,若你的 node 不是在此路径下,n 切换版本就不能把bin、lib、include、share 复制该路径中,所以我们必须通过N_PREFIX变量来修改 n 的默认node安装路径。

具体请参考
node.js版本管理工具n无效的原理和解决方法

  1. 启动Node.js服务
forever start xxx.js

启动成功了,解决完成。

问题虽然是解决了。
或许你会有更多疑问了❓❓❓

  • …操作符是什么?
  • …操作符真的不支持node v6.9.2吗?

考虑到…操作符要介绍的内容较多,就不在这篇文章中写了。
请看下篇文章《JavaScript…延展操作符(Spread operator)》

🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟

  • 我会持续编写文章,保持每周至少一篇文章。💪
  • 有时候编写一篇文章需要大量时间。💪
  • 您只需一秒即可完成【点赞👍或关注❤️】。💪
  • 您的支持将给与我更大的动力。💪

🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟

按照提示进入文件,再看如下图: 仔细看了看 index.html 文件,发现原本我的 JS 文件是放在 /src/utils 文件夹下的,但引入 /src 和 /static 的文件是有区别的。 解决方案: 解决办法是将第三方依赖的 JS 文件放到 /static/utils 目录下,引入路径也改成:[removed][removed],这样就 结果控制台报错了, SyntaxError: Unexpected token { 到百度和google上搜索原因,有提到是es5、es6的语法,要用babel什么的,因为学习过程中不想装这些,太麻烦。 那么这问题该怎么解决呢? 这个语句的作用就是讲vuex里的mapState导入到当前的环... Uncaught SyntaxError: Unexpected token '.'当你遇到这个错误时,首先翻译看他什么意思: Uncaught SyntaxError:意外的标记“.” 小二非常菜,这种问题甚至都是第一次见。(小声bb:可能以前见过忘了) 现在我可以很负责任的告诉大家, 遇到SyntaxError,一定是js的错误!!!! 要么是引入的js路径错误,去点点看js文件是否能进去 要么是js代码中出现错误代码需要排查。 我这里已经提示我错误是因为有一个意外标记".",所以去
SyntaxError: Unexpected token '.' C:\Users\86156\Desktop\Vue3学习\vue3_cli_test1\node_modules\@vue\compiler-core\dist\compiler-core.cjs.js:3261 if (grandparent?.source) { SyntaxError: Unexpected token '.' at Mod
Unhandled Rejection (SyntaxError): Unexpected token < in JSON at position 0 当你发送一个HTTP请求,可能是用Fetch或者其他的Ajax库,可能会出现这个错误提示,或者相似的错误。 接下来我将解释这是由什么引起的,我们应该怎样解决这些问题 1、引起的问题 这些错误发生在当你向服务器发送请求,返回值不是JSON而用JSON的方法解析的时候,发生这种情况的代码可能是这样的。 fetch('/users').then(.
最近在搞小程序,参考Csdn博客的微信小程序反编译Blog,一步一步操作,获取到了.wxapkg,在wxappUnpacker目录下执行cmd命令:node wuWxapkg.js (小程序appid).wxapkg,却报了如下的错 报Unexpeced token '}'错误,但是能反编译一部分文件,微信小程序打开反编译的部分 控制台报app.json未找到的错误 反编译出来的是html不是微信小程序的wxml页面文件 不知道appservice.js文件是什么 不知道page-frame. failed to start daemon: Error initializing network controller: Error creating default “bridge“ netwo failed to start daemon: Error initializing network controller: Error creating default “bridge“ netwo ffdfhhx48: 非常感谢,已经解决了 failed to start daemon: Error initializing network controller: Error creating default “bridge“ netwo 喜欢打篮球的普通人: sudo update-alternatives --config iptables:防火墙选择:iptables-legacy failed to start daemon: Error initializing network controller: Error creating default “bridge“ netwo 荼小荼荼: 把防火墙关掉 MacBook Pro 2018电池鼓包、键盘问题免费换新 Supercel: 北京王府井直营店说的是换完一次,更换的部件只有90天的保修了。另外我2018的连触控板一起给更换了。