Gulp没有检测到子文件夹中的文件更改

时间:2015-12-11 03:26:28

标签: docker gulp yeoman

我正在使用docker-yeoman image启动容器,然后运行Yeoman gulp-webapp生成器来生成项目框架。

生成后,我使用以下命令在同一容器中运行:

docker run -it -p 9000:9000 -p 35729:35729 --rm -v $(pwd):/src cthulhu666/yeoman:gulp gulp serve`

这一切都运转正常。我可以通过访问192.168.99.100:9000查看该网站(我使用的是Docker Toolbox,因此它是一个VM而不是localhost)。

但是发生了一些奇怪的事情:

如果我将body { background: red; }添加到 /app/styles/main.scss ,则Gulp会检测到更改,运行任务并且页面背景变为红色。到现在为止还挺好。

但是,如果我然后创建 /app/styles/partials/_test.scss ,然后将正文选择器移动到该文件中(包含在带有import "partials/test";的main.scss中)然后,当我保存文件时,Gulp没有检测到任何更改。我可以让它“注意”更改的唯一方法是重新保存main.scss文件,此时Gulp启动并且还会应用对_test.scss文件的更改。

我通过在本地安装生成器并重新运行相同的实验来测试它。果然,正如预期的那样,在main.scss和_test.scss中进行更改时应用正常。

有人可以解释为什么在Docker容器中不是这种情况吗?

2 个答案:

答案 0 :(得分:0)

这似乎与文件名中的下划线有关。 SCSS允许您使用各种命名约定:

文件名: /partials/_test.scss / SCSS:@import" partials / _test&#34 ;;

文件名: /partials/_test.scss / SCSS:@import" partials / test&#34 ;;

文件名: /partials/test.scss / SCSS:@import" partials / test&#34 ;;

以上三个都正确导入部分。但是,只有最后一个允许Gulp检测到更改(尽管只在Docker容器中 - 它在本地工作正常)。

我仍然有兴趣知道为什么会这样,如果有人有任何想法:)

答案 1 :(得分:0)

Virtualbox共享文件夹在查看文件时效果不佳。

(我相信你可以找到很多其他人)

Virtualbox是Docker Toolbox / Docker Machine用来提供VM的。