使用gulp uglifyjs时,Sourcemap源文件为空

使用gulp uglifyjs时,Sourcemap源文件为空,gulp,gulp-uglify,Gulp,Gulp Uglify,看起来源映射文件为空 我的代码如下 gulp.src(sources) .pipe(uglifyjs('app.min.js', { outSourceMap: true })) .pipe(gulp.dest('public/js')) .pipe(notify({message: 'Scripts task complete'})); 在浏览器中,我的图像如下所示 请注意,源文件是如何为空的。我不知道我做错了什么。你能帮忙吗 我要补充的是,

看起来源映射文件为空

我的代码如下

gulp.src(sources)
    .pipe(uglifyjs('app.min.js', {
        outSourceMap: true
    }))
    .pipe(gulp.dest('public/js'))
    .pipe(notify({message: 'Scripts task complete'}));
在浏览器中,我的图像如下所示

请注意,源文件是如何为空的。我不知道我做错了什么。你能帮忙吗

我要补充的是,我的源文件使用的是模块模式,即

(function () {
"use strict";
//my code in here
}())
根据:

  • 外包地图

    (默认为false)指定一个字符串作为源映射的名称。设置为true和[…]

    注意:如果希望源映射指向相对路径而不是绝对路径(如果源映射位于服务器上,则可能会指向绝对路径),请将basePath选项设置为提供内容的基础

[……]

  • 源根

    设置应在其中找到源文件的根位置

考虑到上述情况,您可能需要在gulpfile中为gulp uglifyjs调用添加两个选项:

gulp.src(sources)
.pipe(uglifyjs('app.min.js', {
    outSourceMap: true,
    basePath: "/src",
    sourceRoot: "http://localhost:3000"
}))
.pipe(gulp.dest('public/js'))
.pipe(notify({message: 'Scripts task complete'}));
  • sourceRoot,其值是您希望能够从中访问源映射的服务器的url(例如)

  • basePath,它应该从gulpfile的包含目录映射到Web服务器根目录的相对路径。例如,如果您的Web服务器正在从gulpfile的包含目录中的目录“src”提供其内容,则您希望使用“/src”值

  • 以下示例假定您正在运行的Web服务器位于,并且您的Web服务器根目录位于包含gulpfile的目录中的目录“src”中:

    gulp.src(sources)
    .pipe(uglifyjs('app.min.js', {
        outSourceMap: true,
        basePath: "/src",
        sourceRoot: "http://localhost:3000"
    }))
    .pipe(gulp.dest('public/js'))
    .pipe(notify({message: 'Scripts task complete'}));
    
    有用的参考资料:


  • 你能解决这个问题吗?