VSCode不适用于filewatchers

时间:2018-05-17 16:06:38

标签: visual-studio-code node-sass

我正在运行此命令来观看.scss文件node-sass-chokidar ./scss -o ./build --watch

如果我在notepad ++中编辑文件,一切正常,文件编译。

如果我在VSCode中编辑它,那么在我保存之后会出现此错误:

{
  "status": 3,
  "message": "File to read not found or unreadable: E:/Clients/conversions/css/scss/mobile.scss",
  "formatted": "Internal Error: File to read not found or unreadable: E:/Clients/conversions/css/scss/mobile.scss\n"
}

我发现一些线程说这是由原子保存引起的,但VSCode开发人员在github线程中说VSCode不使用原子保存。但是在另一个线程中,他说它重命名文件,所以我想这可能是个问题。

有没有人知道如何解决这个问题并让它正常保存?

5 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。所以我为它创建了一个补丁,并向node-sass提交了一个pull请求:https://github.com/sass/node-sass/pull/2386

问题似乎是当Node-sass尝试访问它时,VSCode仍然保留文件。此修复程序检测到这种情况并应用重试机制。

如果您想现在尝试,作为临时措施,您可以通过将“node_modules / node-sass / lib / render.js”替换为此版本来修补node-sass本地副本:https://github.com/marcosbozzani/node-sass/blob/bug-vscode-watch/lib/render.js < / p>

差异在这里:https://github.com/marcosbozzani/node-sass/commit/266861bf5761dcafd5d53d123264b965c861887c#diff-a485abf5b8f49de7f313d7799df3faf4

答案 1 :(得分:0)

删除-w标志,然后将其编译一次,然后放回-w即可使用

答案 2 :(得分:0)

如果您使用node-sass作为编译器并使用vscode或sublime文本AFAIK,则问题在于原子保存选项,其中node-sass无法访问来编译scss文件,因为编辑器仍在忙。解决此问题的两种方法包括:

  1. 替换node-sass的render.js文件

检查here 每次安装node-sass都必须这样做

  1. 改为安装sass模块

    $纱线添加-D ass

脚本

$ sass --watch input.scss output.css

检查here了解更多有关sass的信息

答案 3 :(得分:0)

当我遇到自己击中保存3-4次时,出现了前几次类似的错误,但最终还是有效。

答案 4 :(得分:0)

在这里,使用 "node-sass": "5.0.0" 我也遇到了这个问题。

对我来说,解决方案是更改脚本命令:

1

node-sass sass/file.scss css/filecompiled.css --w

现在,一切都运行得很完美。

sass sass/file.scss css/filecompiled.css --watch