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

开发Chrome扩展时导入模块出现net::ERR_FILE_NOT_FOUND错误求助

解决Chrome扩展中模块导入的ERR_FILE_NOT_FOUND错误

问题描述

在Chrome Manifest V3扩展的popup.js中导入fetchTabDataFunc时,出现Failed to load resource: net::ERR_FILE_NOT_FOUND错误,已在popup.html中设置type="module",manifest.json也配置了模块类型。

解决方案

1. 补全导入路径的文件扩展名

ES模块导入要求必须指定完整的文件扩展名,你的popup.js中导入语句缺少.js后缀,导致Chrome无法找到文件。

修改popup.js中的导入代码:

// 原代码
import fetchTabDataFunc from "./fetchTabDataFunc";

// 修改后
import fetchTabDataFunc from "./fetchTabDataFunc.js";

2. 确认文件名与路径匹配

检查根目录下的fetchTabDataFunc.js文件名是否完全一致(注意大小写,Chrome扩展会严格区分文件名大小写),确保相对路径./fetchTabDataFunc.js指向正确的文件。

3. 重新加载扩展并清除缓存

修改代码后,在Chrome扩展管理页面(chrome://extensions/)点击重新加载按钮,确保新代码被加载。若存在缓存问题,可勾选开发者模式后点击更新,或重新打包加载扩展。

额外优化建议

  • fetchTabDataFunc.js中未声明tabData变量,建议添加const避免全局变量污染:
    const fetchTabDataFunc = async (linkContainer) => {
        try {
            console.log("i am in fetch func")
            const tabData = await chrome.tabs.query({}); // 声明局部变量
            const ul = document.createElement('ul');
            linkContainer.appendChild(ul);
            if (tabData) {
                ul.innerHTML = tabData.map((tab) => {
                    return `<li>${tab.title}</li>`
                }).join('');
            }
            console.log(tabData);
            return tabData;
        } catch (error) {
            console.log(error);
            throw error;
        }
    }
    
    export default fetchTabDataFunc;
    
  • popup.js中调用异步函数时建议添加await,确保逻辑顺序正确:
    btn.addEventListener('click', async () => {
        console.log("i am in popup.js btn")
    
        if (tabData.length == 0) {
            tabData = await fetchTabDataFunc(linkContainer);
        }
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 06:40:25