You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不切换TypeScript如何修复import/no-default-export报错

纯JS环境下修复import/no-default-export lint报错方案

问题场景

将页面选择器统一抽离到独立JS文件维护时,最初采用默认导出的写法:

// Home-page-selectors.js
export default {
  headerLinks: 'header a',
  contactUsLink: "header a[href='/contact-us']",
}

在页面对应文件中按如下方式导入使用:

// Home-page.js
import selectors from '../test-data/home-page-data.js'

// 调用示例
cy.get(selectors.headerLinks)

运行lint任务时抛出如下错误:

error Prefer named exports import/no-default-export

由于项目内部分插件存在兼容性限制,无法切换到TypeScript技术栈,需在纯JS环境下解决该问题。

修复方案

方案1:遵循lint规则改用命名导出(推荐)

完全符合规则校验要求,不影响原有选择器调用逻辑,仅需调整两处语法:

  • 修改选择器文件,将默认导出改为命名导出
// Home-page-selectors.js
export const selectors = {
  headerLinks: 'header a',
  contactUsLink: "header a[href='/contact-us']",
}
  • 修改对应文件的导入语句,使用命名导入写法
// Home-page.js
import { selectors } from '../test-data/home-page-data.js'

修改完成后,原有cy.get(selectors.headerLinks)这类调用代码无需任何改动,可直接正常运行。

方案2:针对单文件关闭对应lint规则(无侵入调整)

如果不想改动现有导入导出的代码逻辑,可直接在抛出错误的文件顶部添加eslint忽略注释,跳过该规则的校验:

/* eslint-disable import/no-default-export */
// Home-page-selectors.js
export default {
  headerLinks: 'header a',
  contactUsLink: "header a[href='/contact-us']",
}

添加注释后不需要调整其他任何业务代码,lint任务运行时不会再对该文件的默认导出行为抛出错误。


内容的提问来源于stack exchange,提问作者Doctor Who

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 19:06:33