如何解决将源映射添加到 Gulp 会导致手表上的构建不完整
简而言之,我有一个将 Scss 转换为 CSS 并制作源映射的 gulp 任务。当我从 gulp.series
调用它时,它工作正常。但是从手表调用的相同函数只编译前 46 个文件!
功能如下:
export function themesstyles() {
const isProd = process.env.NODE_ENV === 'production'
return gulp.src(`${basePath}project*/css/**/*.scss`,{
base: basePath,allowEmpty: true,sourcemaps: true
})
.pipe(gulpif(isDev,dependents()))
.pipe(gulpIgnore.include(paths.themes.styles.src.map(src => `project*/${src}`)))
.pipe(sass())
.pipe(rename(function (path) {
...
if (isProd) path.extname = `.min${path.extname}`
}))
.pipe(debug({title: 'compiled:'}))
.pipe(gulp.dest(basePath,{sourcemaps: '.'}))
}
这是从 yart 调用以进行构建的函数:
export const build_dev = gulp.series(themesstyles)
当从这个函数调用该函数时,所有 scss 文件 (98) 都转换为 CSS 并且成功创建了 sourcemaps 文件。
我们还有一个任务:
export const dev = gulp.series(devServer)
devServer
函数是:
export function devServer() {
browserSync.init(browserSyncConfig)
gulp.watch(`./htdocs/wp-content/themes/project*/css/**/*.scss`).on('change',(file) => {
return themesstyles().pipe(browserSync.stream({match: '**/*.css'}));
})
gulp.watch(paths.deprecated.scripts.src).on('change',() => {
browserSync.reload()
})
}
问题是当这个 gulp watch 调用 themesstyles()
时,终端上的日志显示所有文件都已编译并且没有错误。但是当我检查文件时,只有前 46 个文件被编译。
...
[17:17:29] compiled: htdocs/wp-content/themes/project97/dist/css/styles.css
[17:17:30] compiled: htdocs/wp-content/themes/project98/dist/css/styles.css
[17:17:30] compiled: 98 items
我测试过,在我从 gulp 任务中删除 sourcemaps 选项的一种情况下它工作正常。然后为 build_dev
和来自观察者的调用成功创建了 css 文件。
另外,我用 gulp 4 sourcemaps 和 gulp-sourcemaps
包都试过了,但都一样!
有人知道为什么会这样吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。