开发时 import './style.css' 修改不生效,是因为parcel仅对js中import的css启用hmr;若css通过html的引入,则无热更新,需确保js文件中显式import且禁用破坏hmr的postcss插件。

开发时 import './style.css' 为什么改了不生效?
不是 Parcel 没监听,而是它只对 JS 中 import 的 CSS 文件启用 HMR;如果 CSS 是通过 HTML 的 <link rel="stylesheet"> 引入的,Parcel 不会接管热更新逻辑,文件变化后浏览器不会自动重载样式。
常见错误现象:parcel serve index.html 启动后修改 style.css,页面样式没变,控制台也无报错。
- 确保入口 JS 文件(如
index.js)里写了import './style.css',而不是只靠 HTML<link> - 不要在 CSS 文件里用
@import 'xxx.scss'替代 JS 的import—— Parcel 对 CSS 内部@import的 HMR 支持不稳定 - 检查是否误启用了
postcss.config.js并配置了cssnano或purgecss:这些插件在开发模式下会破坏 HMR 流程,应仅用于 build 阶段 - 删掉
.parcel-cache目录再重启服务:缓存损坏是 HMR 失效最常被忽略的原因
build 后 CSS 文件生成了,但页面没样式?
Parcel 构建时确实打包了 CSS,但它**不会自动往 dist/index.html 里插入 <link> 标签**。你看到白屏,大概率是因为 HTML 里没写或写错了路径。
- 入口必须是 HTML 文件(如
parcel build src/index.html),且该 HTML 中需显式包含<link href="./style.css"> - 路径必须相对,不能以
/开头:写成href="/style.css"会导致部署到子目录(如/my-app/)时 404 - 如果构建输出 CSS 名含哈希(如
style.abc123.css),HTML 中仍写href="./style.css"即可 —— Parcel 会自动替换为带哈希的真实文件名 - 不想手动维护
<link>?改用import * as cssText from './style.css?inline',然后在 JS 里document.head.appendChild(Object.assign(document.createElement('style'), {textContent: cssText.default}))(仅适合小项目)
autoprefixer 没加 -webkit-flex 怎么办?
Parcel 确实内置 autoprefixer,但它完全依赖 package.json 里的 browserslist 字段触发。没配,就按默认规则("> 0.5%, last 2 versions, not dead")编译,IE11、旧安卓 WebView 这类老环境自然没前缀。
- 在
package.json中添加:"browserslist": ["IE 11", "Android >= 4.4"] - 别指望
postcss.config.js能覆盖:Parcel v2+ 只读它,且仅当导出 plain object 且所有插件已安装;否则静默跳过 - 内置 autoprefixer 版本较老(v10.4.x),若需
grid: 'no-autoplace'等新特性,必须手动装autoprefixer@latest并在.parcelrc中显式配置
SCSS 文件报 “Cannot find module 'sass'”?
这不是配置漏了,是 Parcel v2.12+ 关掉了自动安装行为。它检测到 import './index.scss' 后,只检查本地有没有 sass 包,没有就直接报错,不会帮你 npm install。
- 运行
npm install --save-dev sass(必须是 Dart Sass,node-sass已废弃且不兼容) - SCSS 中
@import 'vars'要求被导入文件名为_vars.scss(以下划线开头),否则 Parcel 可能把它当独立入口打包,导致重复或缺失 -
@import 'normalize.css'能走 npm 解析,但前提是normalize.css已安装且包主入口导出的是 CSS 文件
CSS Modules 必须用 .module.css 后缀,Parcel 对识别非常严格;而 ?inline 这种参数只对 JS 的 import 有效,HTML 的 <link> 不支持。这些边界条件,不踩一遍很难记住。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











