使用Gulp将文件保存到其他文件夹时保留源地图
我正在尝试创建一个Gulp任务,它接受JS文件,在它们上运行uglify,在文件名中添加一个使用Gulp将文件保存到其他文件夹时保留源地图,gulp,source-maps,Gulp,Source Maps,我正在尝试创建一个Gulp任务,它接受JS文件,在它们上运行uglify,在文件名中添加一个.min后缀,然后将它们保存在与源文件夹不同的目标文件夹中。棘手的部分是保持源地图正常工作 gulp.task('uglify-js', function () { // Fetch CSS files return gulp.src(['assets/js/*.js', '!assets/js/*.min.js']) // Start source map
.min
后缀,然后将它们保存在与源文件夹不同的目标文件夹中。棘手的部分是保持源地图正常工作
gulp.task('uglify-js', function () {
// Fetch CSS files
return gulp.src(['assets/js/*.js', '!assets/js/*.min.js'])
// Start source map
.pipe(sourcemaps.init({loadMaps: true}))
// Uglify JS
.pipe(uglify())
// Add file suffix
.pipe(rename({suffix: '.min'}))
// Save source map
.pipe(sourcemaps.write())
// Save output to destination folder
.pipe(gulp.dest('public/js/'));
});
我尝试了许多不同的选择,但源地图似乎不起作用。。。
有人知道这样做的正确方法吗
我的包裹:
"devDependencies": {
"gulp": "^3.8.10",
"gulp-rename": "^1.2.0",
"gulp-sourcemaps": "^1.3.0",
"gulp-uglify": "^1.0.2"
}
非常感谢!:) 问题是gulp rename目前不支持gulp sourcemaps,如中所述 一种替代方法是使用支持sourcemaps的不同库,例如,它支持重命名文件。但是,如果您不想压缩文件,您可以随时打开一个针对gulp rename的pull请求,以添加sourcemaps支持,如下所示
更新:从2015年3月14日起,现在就大口改名您是否尝试过不使用
loadMaps:true
?您好,我尝试过,但没有成功:/I我编辑了一点我的问题,因为我现在似乎根本无法让它工作。。。我会继续尝试…如果我不重命名它,只是将丑陋的文件保存到public/js,那么sourcemaps仍然不起作用:(我看到某些.js文件因其内容而破坏sourcemaps。你在尝试哪些.js文件?我正在使用的一个jquery插件..我将其替换为一些伪js,但仍然是一样的…@ivanv你说什么“它不起作用"?您没有看到结果文件中的sourcemap注释吗?我复制了我认为是您的情况,它似乎对我有效,请参阅:并且结果public\js\main.js
感谢您的示例。它确实有效。我想我发现了我的问题…今天我通过explorer打开了网页,但昨天我正在测试浏览器同步本地“服务器”,我从Gulp开始。似乎有一些小问题:当你在Chrome devtools中查看控制台时,它总是在“line 1”上显示错误。当我现在硬刷新时,会显示正确的行号(尽管我想我昨天也刷新了)。当我在没有浏览器同步的情况下查看它时,它现在似乎工作得很好(即使重命名了)。感谢您将我推向正确的方向!:)