Docker Gulp未检测到子文件夹中的文件更改
我正在使用启动一个容器,然后运行Yeoman gulp webapp生成器生成一个项目框架 生成后,我将使用以下命令在同一容器中运行它:Docker Gulp未检测到子文件夹中的文件更改,docker,gulp,yeoman,Docker,Gulp,Yeoman,我正在使用启动一个容器,然后运行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,因此它是一个虚拟机而不是本地主机) 但奇怪的事情
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,因此它是一个虚拟机而不是本地主机)
但奇怪的事情正在发生:
如果我将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容器中没有这种情况吗?这似乎与文件名中的下划线有关。SCSS允许您使用多种命名约定: 文件名:/partials/_test.scss/ SCSS:@import“partials/_test” 文件名:/partials/_test.scss/ SCSS:@import“部分/测试” 文件名:/partials/test.scss/ SCSS:@import“部分/测试” 以上三种方法都能正确导入部分。然而,只有最后一个允许Gulp检测更改(尽管只在Docker容器中-它在本地工作良好)
如果有人有任何想法的话,我仍然想知道这是为什么:)Virtualbox共享文件夹不能很好地用于文件监视
Virtualbox是Docker Toolbox/Docker Machine用来提供虚拟机的工具。使用glob语法,比如:
sass/***/.scss
。它已经在gulpfile中使用了:gulp.watch('app/styles/***.scss',['styles')代码>当以完全相同的配置在本地运行时,它似乎会拾取子目录更改。。。只是在Docker容器中会导致下划线问题