【发布时间】:2020-04-01 13:23:17
【问题描述】:
我的设置中没有触发 gulp watch 的问题。就我而言,我有一个在虚拟机中运行的 Web 项目。
主机:MAC OSX 访客机器:Ubuntu 服务器
项目文件位于主机上,我使用 NFS 与 /var/www/project 文件夹中的客户机共享文件。
当我在主机上运行 gulp watch 时,一切正常,但我更喜欢在来宾机器上运行它,因为我想使用 browsersync,我无法从带有 Web 服务器的主机上运行它客机。 当我在客户机上运行 gulp watch 时,gulp 正常启动并运行初始 sass 任务,但 gulp watch 永远不会触发任何更改。 当我将共享项目文件复制到来宾机器上的主文件夹时,在那里运行 gulp watch,一切都恢复正常。 所以看来问题是因为 NFS 共享,但我不知道为什么。我已经尝试设置不同的权限,但没有成功。
知道有什么问题吗?也许有人也有一个解决方案,我可以从主机运行 browsersync,但我认为这是不可能的。
您可以在下面看到我的 gulp 文件中的代码:
// Defining dependencies
var
gulp = require('gulp'),
sass = require('gulp-sass'),
postcss = require('gulp-postcss'),
autoprefixer = require('autoprefixer'),
sourcemaps = require('gulp-sourcemaps');
// Defining style function
function style() {
return (
gulp
.src('css/**/**.scss')
// Initialize souremaps before compilation starts
.pipe(sourcemaps.init())
// Compile sass to css
.pipe(sass())
// Error handler for compilation errors
.on('error', sass.logError)
// Use postcss with autoprefixer
.pipe(postcss([autoprefixer()]))
// Now add/write the sourcemaps
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('css'))
// Add browsersync stream pipe after compilation
);
}
exports.style = style;
// Define gulp watcher function
function watch() {
style();
// Run style function on sass changes
gulp.watch('css/**/*.scss', style);
}
exports.watch = watch;
// Define default task
exports.default = watch;
【问题讨论】:
标签: javascript gulp gulp-watch