NervJS / taro

开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
https://docs.taro.zone/
Other
35.57k stars 4.79k forks source link

在H5端调试样式时非常容易崩溃 #3240

Closed wayung closed 5 years ago

wayung commented 5 years ago

问题描述: 在H5端,调试less文件内的样式,taro崩溃,必须重启taro才能运行程序

复现步骤 [复现问题的步骤]

  1. taro init app: 初始化一个项目,选择“less”
  2. npm run dev:h5 在H5端运行
  3. 设置一个类选择器为“desc”【这里是随便起的一个类】
  4. 给这个类设置一个背景样式

    .desc {
    font-size: 28px;
    color: #333333;
    margin-top: 14px;
    background: #ffffff; // 添加这行代码后,taro就崩溃了,这只是我随便找的一个样式,有些其他样式也非常容易触发taro,导致崩溃!
    }

期望行为 我在调试样式的时候,taro不要崩溃。

报错信息 image

系统信息 Taro v1.3.0-beta.5

Taro CLI 1.3.0-beta.5 environment info: System: OS: Windows 7 Binaries: Node: 10.15.1 - D:\soft\nodejs\node.EXE Yarn: 1.13.0 - D:\soft\Yarn\bin\yarn.CMD npm: 6.4.1 - D:\soft\nodejs\npm.CMD

补充信息 [可选] [根据你的调查研究,出现这个问题的原因可能在哪里?]

taro-bot[bot] commented 5 years ago

欢迎提交 Issue~

如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏

如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。

Good luck and happy coding~

luckyadam commented 5 years ago

把你编辑器的监听文件编译插件关掉

wayung commented 5 years ago

把你编辑器的监听文件编译插件关掉

我这边没有使用插件来监听,而且我调试样式的代码是在正确的情况下崩溃的。

luckyadam commented 5 years ago

image 这个文件就是你的编辑器生成的

wayung commented 5 years ago

我编辑HTML文件时,也会有这个提示,但从来没有崩溃过,只有编辑less文件时,才会经常发生崩溃!而且最近我也没装额外的插件(webstorm)

Garfield550 commented 5 years ago

___jb_tmp___ 这种文件是你的 WebStorm 生成的。

https://github.com/boot-clj/boot/issues/471#issuecomment-357370121

Best guess at what is happening:

  1. File is saved in editor with "safe write" enabled
  2. IntelliJ writes the changed file to its temp file (e.g. src/compute/ui_frontend/re_frame.cljs_jbtmp)
  3. Boot creates the filesystem tree which includes the jb_tmp file
  4. IntelliJ safely writes to the original file and deletes its temporary file.
  5. Boot attempts to walk the file tree it created in 1 and a java.nio.file.NoSuchFileException is thrown because the jb_tmp file was included in the file tree but deleted before the file tree could be walked.

This is a race condition which would explain why it only happens occasionally.

Garfield550 commented 5 years ago

对于这个文件我个人认为不属于 Taro CLI 应当处理的问题,你可能需要去 StackOverflow 之类的网站寻找解决方案,比如把这种后缀的文件名加入 .gitignore 之类(如果有用的话)。

wayung commented 5 years ago

刚才我看了你发的那个链接了,既然这是一个临时流文件,那么taro能不能在编译中忽略这个临时文件呢?

twilroad commented 5 years ago

Taro官方应在文件监听里面去掉这部分文件,虽然是由IDE的机制产生的临时文件