ERROR [karma]_ TypeError_ Cannot read property 'unmask' of undefine

简介: ERROR [karma]_ TypeError_ Cannot read property 'unmask' of undefine

karmaautobahnvue-cliunit

vue-cli 项目中添加了 autobahn 这个库,npm run dev 正常,但是 npm run unit 执行单元测试的时候报了一个 unmask 错误,错误信息如下

gyw@gyw:~/sda1/code/exercise/vue-cli-test-karma$ npm run unit
> vue-cli-test-karma@1.0.0 unit /home/gyw/sda1/code/exercise/vue-cli-test-karma
> cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run
27 04 2018 10:33:03.405:INFO [karma]: Karma v1.7.1 server started at http://0.0.0.0:9876/
27 04 2018 10:33:03.406:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
27 04 2018 10:33:03.414:INFO [launcher]: Starting browser PhantomJS
27 04 2018 10:33:03.523:ERROR [karma]: TypeError: Cannot read property 'unmask' of undefined
    at Receiver.unmask (/home/gyw/sda1/code/exercise/vue-cli-test-karma/node_modules/engine.io/node_modules/ws/lib/Receiver.js:306:47)
    at Receiver.finish (/home/gyw/sda1/code/exercise/vue-cli-test-karma/node_modules/engine.io/node_modules/ws/lib/Receiver.js:505:25)
    at Receiver.expectHandler (/home/gyw/sda1/code/exercise/vue-cli-test-karma/node_modules/engine.io/node_modules/ws/lib/Receiver.js:493:33)
    at Receiver.add (/home/gyw/sda1/code/exercise/vue-cli-test-karma/node_modules/engine.io/node_modules/ws/lib/Receiver.js:103:24)
    at Socket.realHandler (/home/gyw/sda1/code/exercise/vue-cli-test-karma/node_modules/engine.io/node_modules/ws/lib/WebSocket.js:825:20)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
    at TCP.onread (net.js:607:20)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! vue-cli-test-karma@1.0.0 unit: `cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the vue-cli-test-karma@1.0.0 unit script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/gyw/.npm/_logs/2018-04-27T02_33_03_550Z-debug.log

####package.json

{
  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
    "e2e": "node test/e2e/runner.js",
    "test": "npm run unit && npm run e2e",
    "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs",
    "build": "node build/build.js",
    "server": "node build/server.js"
  },
  "dependencies": {
    "vue": "^2.5.2",
    "vue-router": "^3.0.1"
  },
  "devDependencies": {
    "autobahn": "^18.3.2",
    "autoprefixer": "^7.1.2",
    "babel-core": "^6.22.1",
    "babel-eslint": "^8.2.1",
    "babel-helper-vue-jsx-merge-props": "^2.0.3",
    "babel-loader": "^7.1.1",
    "babel-plugin-istanbul": "^4.1.1",
    "babel-plugin-syntax-jsx": "^6.18.0",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-plugin-transform-vue-jsx": "^3.5.0",
    "babel-preset-env": "^1.3.2",
    "babel-preset-stage-2": "^6.22.0",
    "babel-register": "^6.22.0",
    "chai": "^4.1.2",
    "chalk": "^2.0.1",
    "chromedriver": "^2.27.2",
    "copy-webpack-plugin": "^4.0.1",
    "cross-env": "^5.0.1",
    "cross-spawn": "^5.0.1",
    "css-loader": "^0.28.0",
    "eslint": "^4.15.0",
    "eslint-config-standard": "^10.2.1",
    "eslint-friendly-formatter": "^3.0.0",
    "eslint-loader": "^1.7.1",
    "eslint-plugin-import": "^2.7.0",
    "eslint-plugin-node": "^5.2.0",
    "eslint-plugin-promise": "^3.4.0",
    "eslint-plugin-standard": "^3.0.1",
    "eslint-plugin-vue": "^4.0.0",
    "extract-text-webpack-plugin": "^3.0.0",
    "file-loader": "^1.1.4",
    "friendly-errors-webpack-plugin": "^1.6.1",
    "html-webpack-plugin": "^2.30.1",
    "inject-loader": "^3.0.0",
    "karma": "^2.0.2",
    "karma-coverage": "^1.1.1",
    "karma-mocha": "^1.3.0",
    "karma-phantomjs-launcher": "^1.0.4",
    "karma-phantomjs-shim": "^1.5.0",
    "karma-sinon-chai": "^1.3.4",
    "karma-sourcemap-loader": "^0.3.7",
    "karma-spec-reporter": "0.0.32",
    "karma-webpack": "^3.0.0",
    "mocha": "^5.1.1",
    "nightwatch": "^0.9.12",
    "node-notifier": "^5.1.2",
    "optimize-css-assets-webpack-plugin": "^3.2.0",
    "ora": "^1.2.0",
    "phantomjs-prebuilt": "^2.1.14",
    "portfinder": "^1.0.13",
    "postcss-import": "^11.0.0",
    "postcss-loader": "^2.0.8",
    "postcss-url": "^7.2.1",
    "rimraf": "^2.6.0",
    "selenium-server": "^3.0.1",
    "semver": "^5.3.0",
    "shelljs": "^0.7.6",
    "sinon": "^4.0.0",
    "sinon-chai": "^2.8.0",
    "uglifyjs-webpack-plugin": "^1.1.1",
    "url-loader": "^0.5.8",
    "vue-loader": "^13.3.0",
    "vue-style-loader": "^3.0.1",
    "vue-template-compiler": "^2.5.2",
    "webpack": "^3.6.0",
    "webpack-bundle-analyzer": "^2.9.0",
    "webpack-dev-server": "^2.9.1",
    "webpack-merge": "^4.1.0",
    "ws": "^5.1.1"
  },
  "engines": {
    "node": ">= 6.0.0",
    "npm": ">= 3.0.0"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]
}

####解决方案:

更新 karmamocha 相关的所有包到最新版就OK了

npm install 
karma@latest 
karma-coverage@latest 
karma-mocha@latest 
karma-phantomjs-launcher@latest 
karma-phantomjs-shim@latest 
karma-sinon-chai@latest 
karma-sourcemap-loader@latest 
karma-spec-reporter@latest 
karma-webpack@latest 
mocha@latest 
ws@latest  -D

之前使用的一种解决方案,那时候服务器上用的 cnpm : 当时是 ws 版本是1.0,把 ws 依赖包更新到 2.0 以上版本,然后把 node_module 中的 ws@1 相关的文件删除就OK了

目录
相关文章
|
应用服务中间件 数据中心 Windows
Minecraft开服教程(windows)
阿里云服务器安装bds官方服
Minecraft开服教程(windows)
|
6月前
|
存储 人工智能 自然语言处理
RAL-Writer Agent:基于检索与复述机制,让长文创作不再丢失关键信息
RAL-Writer Agent是一种专业的人工智能写作辅助技术,旨在解决生成高质量、内容丰富的长篇文章时所面临的技术挑战,确保全文保持连贯性和相关性。本研究将系统分析RAL-Writer的核心技术架构、功能特点及其在内容创作、学术研究和专业交流领域的应用前景。
100 4
RAL-Writer Agent:基于检索与复述机制,让长文创作不再丢失关键信息
|
编译器 程序员 C语言
单片机的数制
单片机的数制
319 0
|
存储 缓存 NoSQL
【Java面试题汇总】Redis篇(2023版)
Redis的数据类型、zset底层实现、持久化策略、分布式锁、缓存穿透、击穿、雪崩的区别、双写一致性、主从同步机制、单线程架构、高可用、缓存淘汰策略、Redis事务是否满足ACID、如何排查Redis中的慢查询
【Java面试题汇总】Redis篇(2023版)
|
存储 监控 安全
oss安全性保障
阿里云OSS提供多层安全保障,包括数据加密(服务器端SSE-KMS和客户端加密)、访问控制(身份验证、ACL、签名URL和防盗链)、DDoS防护、沙箱机制、合规性认证和日志审计。此外,还支持WORM策略确保数据不可篡改及版本控制以恢复误删数据。通过这些措施,OSS确保用户数据的机密性、完整性和可用性,满足不同业务的安全和合规需求。
613 2
|
并行计算 前端开发 安全
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索(一)
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索
437 0
|
Rust C++ Windows
【Rust 实战】注册表之自定义Windows11任务栏位置(上)
【Rust 实战】注册表之自定义Windows11任务栏位置(上)
【Rust 实战】注册表之自定义Windows11任务栏位置(上)
|
编解码 移动开发 IDE
手把手教你安装Android Studio并附上常见安装问题
手把手教你安装Android Studio并附上常见安装问题
Qt 使用UDP广播来寻找当前网段内在线设备
这里简单说明一下,UDP通信分为三种,分别为单播,组播和广播。这三种方式都需要在Qt中添加网络模块并包含头文件
706 0
Qt 使用UDP广播来寻找当前网段内在线设备
|
存储 安全 Java
网站安全公司 修复PHP反序列化漏洞
先来说说序列化是什么吧,序列化是将对象的状态信息转换成可以存储或传输的形式的过程。在序列化期间,将对象的当前状态写入临时或永久存储区。稍后,您可以通过从存储区读取或恢复对象的状态重新创建对象。简而言之,序列化是一种将一对象转换为一个字符串的方法,该字符串可以以特定格式在进程之间跨平台传输。
531 0
网站安全公司 修复PHP反序列化漏洞