javascript - 使用 Vue Js 运行 Jest 测试时出现“语法错误:无法在模块外使用 import 语句”
问题描述
我按照本教程https://frontstuff.io/build-your-first-vue-js-component构建了一个 vue js 组件。然后我按照本教程https://frontstuff.io/unit-test-your-first-vuejs-component对组件进行单元测试。单元测试在组件上的 import 语句处失败并返回此错误:
● 测试套件无法运行
C:\Users\SHINIGAMI-ALFSABAH\Documents\Workspace\Dev\Vue\star-rating\node_modules\vue-awesome\icons\star.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import Icon from '../components/Icon.vue'
^^^^^^
SyntaxError: Cannot use import statement outside a module
12 |
13 | <script>
> 14 | import 'vue-awesome/icons/star'
| ^
15 | import Icon from 'vue-awesome/components/Icon'
16 |
17 | export default {
at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
at src/components/Rating.vue:14:1
at Object.<anonymous> (src/components/Rating.vue:67:3)
任何帮助将不胜感激。
解决方案
我从之前的类似问题中找到了关于 SO 的答案Unexpected token 'import' error while running Jest tests?
基本上我不得不在我的笑话配置中更改我的 transformIgnorePatterns 数组:
transformIgnorePatterns: ["/node_modules/"],
至
transformIgnorePatterns: ["/node_modules/(?!vue-awesome)"],
确保 jest 编译“vue-awesome”模块以在测试中使用。
推荐阅读
- python - 从同名的html获取json
- c# - 你能通过一个 IEnumerable
并检索类型? - delphi - TINiFile.WriteBinaryStream 创建异常
- ios - 如何删除 UITableViewController 中显示为弹出框的行
- antlr4 - ANTLR4 ATN 中的 Atom Transition、Set Transition 和 Epsilon Transition 有什么区别?
- android - Firebase 数据库在 android 模拟器上不起作用
- r - 我可以通过使用 R 中的字符来选择数据框或其他对象吗?
- java - 我创建了时钟,我想让背景透明
- markdown - Reveal.js 代码块中的 lineNumbers 使用 pandoc - 降价转换
- asp.net-core - ASP.NET Core:不通过 IIS Express 提供 Web API - 为什么?