node.js - Gulp 源映射与 css minify

标签 node.js gulp

我花了几个小时在这上面,但无法真正理解这里发生了什么。我尝试为我的 css 文件concatminify 并创建sourcemaps。我希望我的文件夹结构如下:

- Assets
----bundles
--------css
----css
----maps
--------css

我使用了以下代码的许多变体,但无法使其工作。例如,当我使用以下代码时:

gulp.src("./Assets/css/*.css", { base: "." })
        .pipe(sourcemaps.init())
        .pipe(concat("./Assets/bundles/css/"))
        .pipe(cssmin())
        .pipe(gulp.dest("."))
        .pipe(sourcemaps.write("./Assets/bundles/maps"))
        .pipe(gulp.dest("."));

这将创建一个文件夹结构:

./Assets/bundles/maps/Assets/bundles/css/myFile.css.map

但是,当我使用

gulp.src("./Assets/css/*.css", { base: "." })
        .pipe(sourcemaps.init())
        .pipe(concat("./Assets/bundles/css/"))
        .pipe(cssmin())
        .pipe(gulp.dest("."))
        .pipe(sourcemaps.write("./css"))
        .pipe(gulp.dest("."));

这会输出到我的根项目文件夹,例如

./css/Assets/bundles/css/myFile.css.map

这是怎么回事?我尝试使用 gulp-rename 但也无法使其工作。

注意:Gulp 版本为 3.9.1

最佳答案

我最终像这样使用它

gulp.src("./Assets/css/*.css", { base: "." })
        .pipe(sourcemaps.init())
        .pipe(concat("./Assets/bundles/css/"))
        .pipe(cssmin())
        .pipe(gulp.dest("."))
        .pipe(sourcemaps.write("./Assets/bundles/maps/css", {
            sourceMappingURL: function (file) { //This is to reference the correct paths for our map file..
                return "../maps/css/" + path.basename(file.path) + ".map"; //require the path module..
            }
        }))
        .pipe(rename(function (path) {
            if (path.extname == ".map") { //Only change the paths of map files not the .min files
                path.dirname = "./Assets/bundles/maps/css";
            }
        }))
        .pipe(gulp.dest("."));

关于node.js - Gulp 源映射与 css minify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42189942/

相关文章:

javascript - 如何在 Javascript 中从数组中提取值

node.js - 在android上卸载node和npm?

javascript - Knex 迁移导致 gulp 进程挂起

javascript - 为什么我会收到此错误? dest.on 不是一个函数 - 使用 gulp-file-include

javascript - Gulp 无法定位@导入文件 nib.style

node.js - Amazon Elastic Beanstalk Node 和 npm 非标准安装位置

node.js - 在 Node.JS 应用程序的应用程序配置中找不到 URLMap 条目

Node.js 异步调用处理和多核扩展

javascript - Gulp 将多个 js 文件缩小为一个

css - 如何使用 gulp 连接 js/css 文件并在 html 中替换?