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了

相关文章
|
10月前
Cannot read properties of undefined (reading ‘resetFields‘)“
Cannot read properties of undefined (reading ‘resetFields‘)“
148 0
|
19天前
|
iOS开发 MacOS
TypeError: Cannot read property ‘shop‘ of undefined
TypeError: Cannot read property ‘shop‘ of undefined
15 0
|
19天前
【报错】 “TypeError: Cannot read properties of undefined (reading ‘split‘)“
【报错】 “TypeError: Cannot read properties of undefined (reading ‘split‘)“
|
19天前
|
JavaScript
【报错】:Cannot read properties of undefined (reading ‘prototype‘)
【报错】:Cannot read properties of undefined (reading ‘prototype‘)
191 0
|
19天前
报错:cannot read properties of undefined(reading ‘forEach‘)
报错:cannot read properties of undefined(reading ‘forEach‘)
报错:cannot read properties of undefined(reading ‘forEach‘)
|
10月前
解决 TypeError: Cannot read property ‘tapPromise‘ of undefined
解决 TypeError: Cannot read property ‘tapPromise‘ of undefined
200 0
|
11月前
error C2449: found ‘{‘ at file scope (missing function header?)和error C2059: syntax error : ‘}‘
error C2449: found ‘{‘ at file scope (missing function header?)和error C2059: syntax error : ‘}‘
75 0
|
19天前
|
JavaScript
Cannot read properties of undefined (reading ‘install‘) TypeError: Cannot read properties of……
Cannot read properties of undefined (reading ‘install‘) TypeError: Cannot read properties of……
|
7月前
|
JavaScript
vue报错: ERROR TypeError: Cannot read property 'version' of undefined
vue报错: ERROR TypeError: Cannot read property 'version' of undefined
38 1
|
7月前
|
JavaScript
TypeError: Cannot read properties of null (reading &#39;level&#39;)
# 一、分析问题 1、一个下拉框组件的更新由另一个下拉框组件控制被动更新列表,子级下拉框的值是由父级下拉框的值调用接口获取,每次父级下拉框值的改变都会改变子级下拉框的数据源也就是会改变子级下拉框的options,切换后之前的父级节点找不到就会报了这个错,父级节点不改变(即不切换)的话不会报错 # 二、解决方案 ## 1、vue页面的html层 ```html &lt;div&gt; &lt;el-row :gutter=&quot;15&quot;&gt; &lt;el-col :span=&quot;4&quot;&gt; &lt;div&quot;&gt;父级下拉框:&lt;/div&gt; &lt;el-select clearable v-model=&quot;parentId&quot; @c
89 0