我们的天猫精灵服务是用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版本确实有点低了,决定升级到最新稳定版本
- 安装Node.js版本管理工具
npm install -g n
- 安装最新稳定版 node
npm lts
- 使用 n 切换版本

4. 查看Node.js版本
奇怪了,没有切换成功
通过搜索找到了原因:
n 默认安装路径是 /usr/local,若你的 node 不是在此路径下,n 切换版本就不能把bin、lib、include、share 复制该路径中,所以我们必须通过N_PREFIX变量来修改 n 的默认node安装路径。
具体请参考
node.js版本管理工具n无效的原理和解决方法
- 启动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
喜欢打篮球的普通人:
failed to start daemon: Error initializing network controller: Error creating default “bridge“ netwo
荼小荼荼:
MacBook Pro 2018电池鼓包、键盘问题免费换新
Supercel: