我正在使用带有热模块替换功能的 Parcel (v2.0.1) localhost 服务器来开发一个简单的基于 HTML/SASS/JS 的 Web 应用程序。 HMR 大部分时间都工作正常,但有时,特别是对代码进行重大更改时,所有服务器更新都会停止工作 - 即,不仅 HMR 不起作用,而且我什至无法让服务器恢复通过完全重新加载浏览器页面甚至停止并重新启动服务器来反映更改。为了确保我不只是错过了一些简单的东西,我对代码进行了更改,这肯定会破坏某些功能并重新启动服务器,但页面仍然正常工作。
我还尝试删除 .parcel-cache 和 dist 文件夹并重新运行 Parcel,但这也不起作用。重新启动我的电脑也没有效果。我见过的关于这个问题的唯一提及是这个 github 讨论。
有人遇到过类似的问题吗?谢谢!
这是 package.json 文件:
{
"name": "",
"version": "1.0.0",
"description": "",
"source": "index.html",
"scripts": {
"start": "parcel index.html",
"build": "parcel build index.html"
},
"author": "",
"license": "ISC",
"devDependencies": {
"@parcel/transformer-sass": "^2.0.1",
"parcel": "^2.0.1"
},
"dependencies": {
"core-js": "^3.19.3",
"fractional": "^1.0.0",
"regenerator-runtime": "^0.13.9"
}
}
将其放入您的脚本标签中:
type="module"
我用以下代码解决了这个问题:
"start": "parcel index.html && parcel watch index.html",
遇到同样的问题:包裹停止工作。特别是对我来说,当我离开一个项目第二天,当我返回时,它已经坏了,就会发生这种情况。即使完全重新安装(包括删除 package.json)也无法解决问题。重新安装后,以前的损坏状态仍然保留:它运行最近的工作代码版本(我不明白从哪里获得正确的代码,所有数据都被删除)并且不会对任何更改做出反应,除了语法错误,这会导致抛出相关的错误错误。
我发现问题(无论如何,就我而言)是项目文件都在云文件夹中。将文件移至本地驱动器后,一切正常!
确保导入时使用的文件名与实际文件名匹配。例如,如果您的
index.html
中的脚本标签显示如下:
<script type="module" src="./src/App.js"></script>
确保您创建一个名为
App.js
的文件。如果文件名为 app.js
,热重载将无法正常运行。
将其他组件模块导入到父文件中时,此原则也适用。