模块解析错误:form-data模块路径无法解析求助
问题描述
试了各种办法都搞不定,一开始碰到这个错误:Uncaught TypeError: Failed to resolve module specifier "axios". Relative references must start with either "/", "./", or "../".
解决完axios的问题后,又出现一模一样的错误,只不过报错对象变成了"form-data":Uncaught TypeError: Failed to resolve module specifier "form-data". Relative references must start with either "/", "./", or "../".
这次不知道该改哪里的路径,有没有人碰到过?
我有三个FormData.js文件,其中两个内容是:
import FormData from 'form-data'; export default FormData;
另一个内容是:
'use strict'; export default FormData;
附上了文件结构、HTML文件、主index.js、module.js、FormData.js的相关截图。
解决建议
- 别用Node.js的form-data包,浏览器原生就支持FormData
你写的import FormData from 'form-data'是引入Node.js环境专用的npm包,浏览器无法识别这种不带路径的"裸模块名",而且浏览器本身就内置了FormData对象,完全没必要额外引入。 - 修改你的FormData.js文件
把那两个带import FormData from 'form-data'的文件,直接删掉import语句,改成导出原生FormData:
那个带export default window.FormData;'use strict'的文件,直接改成上面的写法即可,原代码里的FormData其实已经是浏览器原生对象,只是没明确来源。 - 检查所有引入FormData的路径
确保其他文件里引入FormData时,用的是相对路径指向你自己的FormData.js文件,比如同目录下写import FormData from './FormData.js',上一级目录写../FormData.js,绝对不能直接写import FormData from 'form-data'。 - 打包工具特殊情况处理
如果你用了webpack、vite这类打包工具,得先通过npm install form-data安装包,同时确保打包工具配置能识别裸模块名,但从报错情况看,你大概率是直接在浏览器用原生ES模块,优先按前面的步骤操作即可。
内容的提问来源于stack exchange,提问作者Alim Gölcük
相关产品推荐
相关产品推荐

