运行 mocha 测试时 Babel 意外导入令牌

2023-11-26

其他相关问题中提供的解决方案,例如在 .babelrc 中包含适当的预设(es2015),已在我的项目中实现。

我有两个项目(我们称它们为 A 和 B),它们都使用 ES6 模块语法。在项目 A 中,我导入项目 B,该项目通过 npm 安装并位于 node_modules 文件夹中。当我运行项目 A 的测试套件时,出现错误:

语法错误:意外的令牌导入

其前面是来自项目 B 的据称错误的代码行:

(函数(导出、要求、模块、__文件名、__目录名){ 导入 从 'history/lib/createBrowserHistory' 创建浏览器历史记录;

iife 似乎与 npm 或可能与 babel 相关,因为我的源文件仅包含“import createBrowserHistory from 'history/lib/createBrowserHistory'; 项目 B 的测试套件中的单元测试运行良好,如果我将项目 B 作为依赖项从项目 A,我的测试套件(仍然使用 es6 导入作为内部项目模块)工作得很好。

完整的堆栈跟踪:

 SyntaxError: Unexpected token import
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Module._extensions..js (module.js:405:10)
    at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:138:7)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (actionCreators.js:4:17)
    at Module._compile (module.js:398:26)
    at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5)
    at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:140:7)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/ProjectA/src/components/core/wrapper/wrapper.js:28:23)
    at Module._compile (module.js:398:26)
    at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5)
    at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:140:7)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/ProjectA/src/components/core/wrapper/wrapperSpec.js:15:16)
    at Module._compile (module.js:398:26)
    at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5)
    at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:140:7)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at /ProjectA/node_modules/mocha/lib/mocha.js:219:27
    at Array.forEach (native)
    at Mocha.loadFiles (/ProjectA/node_modules/mocha/lib/mocha.js:216:14)
    at Mocha.run (/ProjectA/node_modules/mocha/lib/mocha.js:468:10)
    at Object.<anonymous> (/ProjectA/node_modules/mocha/bin/_mocha:403:18)
    at Module._compile (module.js:398:26)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:430:10)
    at startup (node.js:141:18)
    at node.js:980:3

这是我来自 package.json 的测试命令:

"test": "mocha --compilers js:babel-core/register '+(test|src)/**/*Spec.js'"

这篇 StackOverflow 文章类似,但没有为我使用命令行提供解决方案:使用babel从node_modules导入模块但失败


对于巴别塔

解决这个问题最简单的方法是:

  1. npm install babel-preset-es2015 --save-dev
  2. Add .babelrc到项目的根目录,内容为:

    {
     "presets": [ "es2015" ]
    }
    

确保您使用“--compilers js:babel-core/register”参数运行 mocha。

适用于巴别塔6/7+

  1. npm install @babel/preset-env --save-dev
  2. Add .babelrc到项目的根目录,内容为:

    {
     "presets": [ "@babel/preset-env" ]
    }
    

确保您正在运行 mocha--compilers js:babel-register(巴别塔 6)或--compilers js:@babel/register(通天塔 7) 参数

对于 mocha 版本 7 或更高版本,请使用--require babel-register or --require @babel/register分别。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行 mocha 测试时 Babel 意外导入令牌 的相关文章

随机推荐

  • 如何将 ABRecordRef 添加到 iPhone 中的 NSMutableArray?

    我想创建一个 ABRecordRef 数组来存储具有有效生日字段的联系人 NSMutableArray bContacts NSMutableArray alloc init ABAddressBookRef addressBook ABA
  • 如何使用
  • 而不是提交按钮提交表单?
  • 我希望能够提交表单 但不必单击提交按钮 我希望能够单击 li 元素并让它提交 任何帮助都会很棒 提前致谢 Ncoder 您可以在 LI 上放置一个 onclick 事件来调用表单提交事件 li
  • Oracle 和 SQL Server select (+) 等效

    在甲骨文中我有 SELECT t2 Regkood t2 naitatel t2 naitafaks t3 lahtiolekuaeg t1 FROM table1 t1 table2 t2 table3 t3 WHERE t1 clien
  • 为什么Java的类型推断这么弱?

    说吧 我有一个方法 public static
  • 如何在oracle数据库中存储BigInteger值

    我已经使用 JDBC 将 Java 程序连接到 Oracle 数据库 我想存储BigInteger数据库中的值 512 位 列的类型应该是什么 我正在尝试这样 我在数据库中获取了一列数字类型 我转换了BigInteger to BigDec
  • 如何在 Swift 中将 url.query 转换为字典?

    我有一个进入 AppDelegate 方法的 URL func application application UIApplication open url URL sourceApplication String annotation A
  • 与在 Rhino Mocks 中使用 Ordered() 等效的 AAA 语法是什么

    我一生都无法找到使用 Rhino 中的 Fluent AAA 语法来验证操作顺序的正确语法 我知道如何使用旧的学校记录 播放语法来做到这一点 MockRepository repository new MockRepository usin
  • Capybara + RSpec 仅在控制器规格中看到空白页。为什么?

    我正在尝试为一个简单的控制器编写控制器规范 但是 Capybara 看不到任何页面内容 但是 在我的浏览器中查看该网站的页面效果很好 我究竟做错了什么 谢谢 我的控制器规格 我的spec helper rb 我的宝石文件 您需要明确告诉您的
  • JavaScript 颜色渐变

    使用带或不带 Jquery 的 javascript 我需要根据开始和结束颜色创建颜色渐变 这可以通过编程来完成吗 结束颜色只会是开始颜色的较暗阴影 并且它用于无序列表 我无法控制 li 项目的数量 我正在寻找一种解决方案 允许我选择开始和
  • C# 事件处理程序

    如何在 C 中检查 Button Click 事件是否有关联的处理程序 If button Click null 抛出编译错误 你不能 事件只是公开 添加处理程序 和 删除处理程序 仅此而已 事实上 在 CLR 中 您还可以使用元数据将方法
  • 如何使用 google API for python 在特定文件夹下创建工作表?

    我可以在 我的云端硬盘 的根目录中使用以下代码创建一个工作表 但是如何在 我的云端硬盘 或 共享云端硬盘 的文件夹下创建该工作表 from googleapiclient discovery import build service bui
  • 如何在代码中设置绑定?

    我需要在代码中设置绑定 我似乎无法弄清楚 这是我尝试过的 XAML
  • wpf 中的弹出窗口和切换按钮交互

    我有一个包含切换按钮和弹出窗口的控件 单击 ToggleButton 时 会出现弹出窗口 当 ToggleButton 未选中时 弹出窗口应关闭 此外 单击远离弹出窗口应导致其关闭 并导致切换按钮取消选中 我通过将 Popup 的 Stay
  • 如何在 CKeditor 上传中向 POST 值添加字段

    I use django and ckeditor为 TextEdits 提供所见即所得的品味 我想使用CKEditor文件上传功能 在文件浏览器 图像对话框中 但是CKEditor上传图像的POST只包含文件数据 这是 CSRF 检查的一
  • 从 Linq 查询调用方法

    我正在使用 Linq 查询和调用方法 Like oPwd objDecryptor DecryptIt c Password ToString 它将返回空值 意味着这不会起作用 我如何解决这个问题 Thanks var q from s i
  • 过滤以特定关键字开头的字符串列表

    我怎样才能找到一个字符串 PartialWord 在列表 WordList 在 Python 2 7 中 PartialWord ab WordList absail rehab dolphin 使用通配符进行搜索 例如 ab 如果它以这些
  • Android TextView 对齐文本

    如何获取 a 的文本TextView是否合理 文本在左侧和右侧齐平 我找到了一个可能的解决方案here 但它不起作用 即使您将vertical center更改为center vertical等 我不相信 Android 支持完全合理 更新
  • MS Access 错误“ODBC——调用失败。转换规范的字符值无效 (#0)”

    有谁知道这个错误意味着什么或如何解决它 我使用的是 Access 2003 和 SQL2005 当尝试在特定子表单上添加记录时会出现它 Microsoft SQL Native Client 转换规范的字符值无效 0 此 MS 错误报告描述
  • 从另一个应用程序以编程方式打开 iOS 设置应用程序中的键盘设置屏幕

    我们如何以编程方式直接进入 iOS 设置应用程序的以下任何屏幕 UPDATE 正如其他用户指出的那样 此解决方案不再适用于 iOS10 如果有人知道如何使其在 iOS10 中运行 请告诉我们 iOS 要打开 您自己的应用程序的 设置 您可以
  • 运行 mocha 测试时 Babel 意外导入令牌

    其他相关问题中提供的解决方案 例如在 babelrc 中包含适当的预设 es2015 已在我的项目中实现 我有两个项目 我们称它们为 A 和 B 它们都使用 ES6 模块语法 在项目 A 中 我导入项目 B 该项目通过 npm 安装并位于