vue.js - vue.config.js optimization.splitChunks 打破了新项目中的单元测试
问题描述
在新初始化的 vue 项目中添加 maxSize < 1077900 的 splitchunks webpack 优化会破坏单元测试。
- Vue cli:3.9.0
- 网络包:4.41.5
任何人都知道会导致这种情况的原因是什么?
构建中生成的文件:
File Size Gzipped
dist/js/chunk-vendors~d939e436.1b1a6c4 89.15 KiB 31.95 KiB
d.js
dist/js/app~d0ae3f07.be737b26.js 4.81 KiB 1.68 KiB
dist/css/app~d0ae3f07.0dca8a5d.css 0.33 KiB 0.23 KiB
纱线运行测试:单元
WEBPACK Compiling...
[=========================] 98% (after emitting)
DONE Compiled successfully in 2010ms
[=========================] 100% (completed)
WEBPACK Compiled successfully in 2010ms
MOCHA Testing...
RUNTIME EXCEPTION Exception occurred while loading your tests
TypeError: Cannot read property 'call' of undefined
at __webpack_require__ (/Project/Path/testvuetest/dist/js/webpack:/webpack/bootstrap:19:1)
at /Project/Path/testvuetest/dist/js/webpack:/webpack/bootstrap:83:1
at Object.<anonymous> (/Project/Path/testvuetest/dist/js/main~._node_modules_@.js:87:10)
at Module._compile (internal/modules/cjs/loader.js:959:30)
at Object._module2.default._extensions.<computed> [as .js] (/Project/Path/testvuetest/node_modules/mochapack/src/util/registerRequireHook.js:99:12)
at Module.load (internal/modules/cjs/loader.js:815:32)
at Function.Module._load (internal/modules/cjs/loader.js:727:14)
at Module.require (internal/modules/cjs/loader.js:852:19)
at require (internal/modules/cjs/helpers.js:74:18)
at /Project/Path/testvuetest/node_modules/mocha/lib/mocha.js:334:36
at Array.forEach (<anonymous>)
at Mocha.loadFiles (/Project/Path/testvuetest/node_modules/mocha/lib/mocha.js:331:14)
at Mocha.run (/Project/Path/testvuetest/node_modules/mocha/lib/mocha.js:809:10)
at cb (/Project/Path/testvuetest/node_modules/mochapack/src/runner/TestRunner.js:96:21)
at /Project/Path/testvuetest/node_modules/mochapack/src/webpack/compiler/registerReadyCallback.js:12:7
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Project/Path/testvuetest/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:45:1)
at AsyncSeriesHook.lazyCompileHook (/Project/Path/testvuetest/node_modules/tapable/lib/Hook.js:154:20)
at /Project/Path/testvuetest/node_modules/webpack/lib/Compiler.js:304:22
at Compiler.emitRecords (/Project/Path/testvuetest/node_modules/webpack/lib/Compiler.js:499:39)
at /Project/Path/testvuetest/node_modules/webpack/lib/Compiler.js:298:10
at /Project/Path/testvuetest/node_modules/webpack/lib/Compiler.js:485:14
at eval (eval at create (/Project/Path/testvuetest/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:16:1)
at /Project/Path/testvuetest/node_modules/copy-webpack-plugin/dist/index.js:115:7
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Project/Path/testvuetest/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:12:1)
at AsyncSeriesHook.lazyCompileHook (/Project/Path/testvuetest/node_modules/tapable/lib/Hook.js:154:20)
at /Project/Path/testvuetest/node_modules/webpack/lib/Compiler.js:482:27
at /Project/Path/testvuetest/node_modules/neo-async/async.js:2818:7
at done (/Project/Path/testvuetest/node_modules/neo-async/async.js:3522:9)
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Project/Path/testvuetest/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
at /Project/Path/testvuetest/node_modules/webpack/lib/Compiler.js:464:33
at MemoryFileSystem.writeFile (/Project/Path/testvuetest/node_modules/memory-fs/lib/MemoryFileSystem.js:328:9)
at writeOut (/Project/Path/testvuetest/node_modules/webpack/lib/Compiler.js:462:30)
at Immediate._onImmediate (/Project/Path/testvuetest/node_modules/memory-fs/lib/MemoryFileSystem.js:288:4)
at processImmediate (internal/timers.js:439:21)
ERROR mochapack exited with code 1.
解决方案
推荐阅读
- dart - Flutter - 在 Google_Sign_In 包中使用 SignInWithEmailAndPassword() 时出现问题
- angular - 在角度应用程序中从后端创建数据模型什么时候有用?
- python - 如何在一组点中找到最近点的子集?
- c - 如何从C中的串口转换传入的十六进制值?
- c - 用 snprintf() 填充字符数组
- windows - 如何在本地主机上执行 jenkins cli 命令?
- python - Microsoft Face API 验证(面对面)是否下来?总是说错误的请求和文档控制台显示错误
- python-3.x - 将分段上传中的最后一部分上传到 S3 时出现问题
- java - 如何在 ColdFusion 中创建通用 Java 对象
- django - 如果所有参数都可用于 URL 生成 (#NoReverseMatch),则签入 Django 模板