5

有没有人找到生成有效源映射的 Gulp、Uglify 和 Concat 的工作组合?GitHub 中似乎存在很多关于此类交互的问题,但同样人们似乎已经找到了成功的组合。我尝试了很多变体,但是当我打开 uglify 时,符号映射不起作用,断点在浏览器中也不能正常工作。例如,以下工作正常:

return gulp.src('/scripts/*.js')
            .pipe(sourcemaps.init())
            //.pipe(uglify())
            .pipe(concat(outputName + '.min.js'))
            .pipe(sourcemaps.write('./'))
            .pipe(gulp.dest(outputPath))
            .on('end', function() { gutil.log('Minified ' + outputName); })
            .on('error', handleError);

但取消注释 uglify 并没有。

我创建了一个 GitHub 存储库来重现该问题:https ://github.com/jamescrowley/gulpIssues

4

2 回答 2

1

我们一直将其用作:

.pipe(sourcemaps.init())
.pipe(concat('app.js'))
.pipe(ngAnnotate())
.pipe(uglify())
.pipe(sourcemaps.write())
.pipe(gulp.dest('app.js'))

这对我来说似乎很好。它虽然将源映射输出到文件本身。

版本:

"browser-sync": "^2.2.4",
    "gulp": "^3.8.6",
    "gulp-concat": "^2.3.4",
    "gulp-ng-annotate": "^0.2.0",
    "gulp-rename": "^1.2.0",
    "gulp-replace": "^0.4.0",
    "gulp-sourcemaps": "^1.1.0",
    "gulp-uglify": "^0.3.1",
    "gulp-util": "^2.2.20"
于 2015-05-18T13:30:04.117 回答
0

如果有人遇到此问题并找到此答案:这不起作用的原因是因为您无法通过一次 sourcemaps.init() 调用“源映射”更多转换。这种组合对我有用

return gulp.src('/scripts/*.js')
            .pipe(sourcemaps.init())
            .pipe(uglify())
            .pipe(sourcemaps.write())
            .pipe(sourcemaps.init())
            .pipe(concat(outputName + '.min.js'))
            .pipe(sourcemaps.write())
            .pipe(gulp.dest(outputPath))
            .on('end', function() { gutil.log('Minified ' + outputName); })
            .on('error', handleError);
于 2021-08-06T08:28:38.647 回答