如何解决Parcel提示‘Failed to resolve ''’的打包错误?
Parcel编译Sass时出现"Invalid empty specifier"错误的解决方法
报错信息
@parcel/core: Failed to resolve '' from './src/styles/scss/main.scss'
C:\Users\netog\OneDrive\Desktop\Horizons\src\styles\scss\main.scss:30:5
@parcel/resolver-default: Invalid empty specifier
当前配置及代码
你的package.json配置:
{ "name": "horizons", "version": "1.0.0", "main": "index.js", "scripts": { "start": "parcel src/index.html", "build": "parcel build src/index.html" }, "keywords": [], "author": "", "license": "ISC", "description": "", "devDependencies": { "@parcel/transformer-sass": "^2.12.0", "parcel": "^2.12.0" } }
当前main.scss代码片段:
@use 'layout'; @use 'pages';
解决步骤
- 重点检查
main.scss第30行:报错明确指向该行存在空的导入/引用(比如@use '';、漏写模块名的语句,或是语法错误导致解析器误判),你贴的代码片段未包含这部分内容,先定位并修复此处问题 - 排查转发文件:检查
layout和pages目录下的index.scss,确认里面没有空的@use/@import语句,也没有引用空字符串或不存在的文件 - 彻底清除缓存:执行
npx parcel clean命令,或是手动删除项目根目录下的.parcel-cache和dist文件夹,再重新运行npm start - 显式指定相对路径:把
@use 'layout';改成@use './layout';,@use 'pages';改成@use './pages';,Parcel对Sass模块的解析可能需要明确相对路径才能正确识别转发的index文件 - 检查大小写和拼写:确认
layout、pages文件夹名和你引用的模块名完全一致(Parcel的模块解析是大小写敏感的)
内容的提问来源于stack exchange,提问作者EGstacking
相关产品推荐
相关产品推荐

