使用绝对路径时,gulp监视不起作用?

问题描述 投票:0回答:1

我正在设置gulp开发环境,但是当我在gulp watcher中使用绝对路径时,它不起作用。gulp watcher是否支持绝对路径?

gulpfile.js

gulp.task('watch', function() {
    gulp.watch(
        path.join(__dirname, 'public/css/**/*.css'), 
        gulp.parallel('dev:css', 'dev:cssImgs')
    );
});
javascript gulp
1个回答
0
投票

我发现了相同的错误,很抱歉在2019年取消了此问题。但此问题尚未解决。

似乎监视进程仅接受以Unix样式编写的相对路径。它不接受绝对路径,甚至不接受带有反斜杠的相对路径(Windows样式)。

使用节点path清除路径在Windows上无济于事,因此唯一的解决方案是使用节点path.normalize('..\\your\\relative\\path\\'),然后将\\替换为/

我编写了一个简单的函数,无论在哪个OS上使用,我都将以Unix方式标准化路径。

/*
	This plugin is used to fix path separators for dynamically created links used
	for `gulp watch` command.

	It converts links like
	`../../some//path\with/wrong//\separators/`
	to
	`../../some/path/with/wrong/separators/`

	It also replaces `~` with user home directory path
*/

module.exports = (oldPath) => {
	const pathString = oldPath;
	const fix = /\\{1,}|\/{1,}/;
	const user_home = require('os').homedir();

	return pathString.replace(new RegExp(fix, 'gm'), '/').replace(new RegExp(fix, 'gm'), '/').replace('~', user_home)
}

将该代码另存为fixPath.js,然后以这种方式使用它:

const fixPath = require('./fixPath')

let badPath = '../../some//path\with/wrong//\separators/'

let goodPath = fixPath(badPath) // "../../some/path/with/wrong/separators/"
© www.soinside.com 2019 - 2024. All rights reserved.