2015-08-05 3 views
1

Я использую gulp-sourcemaps в моем проекте для обработки SASS и JavaScript. Мой gulpfile.js правильно генерирует файлы .map, хотя Chrome показывает неправильные имена файлов в инструментах и ​​консоли разработчика. На данный момент я не уверен, где проблема.Неверное имя файла с помощью gulp-sourcemaps

Мой проект дерево:

gulpfile.js 
public/ 
    sass/ 
    main.sass 
    import/ 
     [.. more files and directories (all imported in main.sass) ..] 
    js/ 
    main.js 
    test.js 
    min/ 
     sourcemaps/ 
     main.js.map 
     main.js 
     all.js 
    css/ 
     main.css 
     sourcemaps/ 
     main.css.map 

Мои gulpfile.js

var gulp = require('gulp'); 
var uglify = require('gulp-uglify'); 
var concat = require('gulp-concat'); 
var rename = require('gulp-rename'); 
var sass = require('gulp-ruby-sass'); 
var plumber = require('gulp-plumber'); 
var prefix = require('gulp-autoprefixer'); 
var sourcemaps = require('gulp-sourcemaps'); 

var options = { 
    styles: { 
     "source": "public/sass/main.sass", 
     "destination": "public/css", 
     "sourcemaps": "sourcemaps" 
    }, 
    scripts: { 
     "source": "public/js/*.js", 
     "destination": "public/js/min", 
     "sourcemaps": "sourcemaps" 
    } 
} 

gulp.task('styles', function() { 
return sass(options.styles.source, {sourcemap: true, style: 'compressed'}) 
    .pipe(plumber()) 
    .pipe(prefix("last 1 version", "> 1%", "ie 8", "ie 7")) 
    .pipe(sourcemaps.write(options.styles.sourcemaps)) 
    .pipe(gulp.dest(options.styles.destination)); 
}); 

gulp.task('scripts', function() { 
    return gulp.src(options.scripts.source) 
     .pipe(plumber()) 
     .pipe(sourcemaps.init()) 
     .pipe(concat('all.js')) 
     .pipe(gulp.dest(options.scripts.destination)) 
     .pipe(rename('main.js')) 
     .pipe(uglify()) 
     .pipe(sourcemaps.write(options.scripts.sourcemaps, {includeContent: false, sourceRoot: '../../'})) 
     .pipe(gulp.dest(options.scripts.destination)); 
}); 

gulp.task('default', ['styles', 'scripts'], function() { 
    gulp.watch('public/sass/**', ['styles']); 
    gulp.watch('public/js/**', ['scripts']); 
}); 

План является:

  • 'стили' компилирует общественности/дерзость/main.sass (который включает весь мой источник SASS), авто-префикс источника, пишет sourcemap и выходов общественность/CSS/main.css сцепляет

  • 'скрипты' все файлы в общественном/Js каталог, uglifies источника, пишет sourcemap и выводит государственный/JS/мин/main.js

После всего этого процесса я хочу оставить public/css/main.css, содержащий все мои скомпилированные, автоматически префиксные, миниатюрные источники SASS и public/js/min/main.js, содержащие все мои конкатенированные, Источник JavaScript.

В настоящее время стили в инструментах разработчика показывают имя файла _box-sizing.scss (который является зависимостью от public/sass/import/lib/neat), файл, который не содержит стилей для элемента, который я проверяю. Имя файла должно быть _header.sass (из public/sass/import/layouts/common/_header.sass).

Аналогичным образом консоль показывает main.js независимо от исходного файла. У меня есть public/js/main.js и public/js/test.js - эти файлы должны быть объединены и выведены в public/js/min/main.js. Оба эти файла содержат только один console.log() для тестирования, а имя файла, отображаемое в Chrome, - main.js для обоих.

Надеюсь, это имеет смысл. Заранее спасибо

+0

Посидев вниз и думать об этом, я думаю, что проблема в том, что все мой источник SASS включен в общественных местах/дерзость/main.sass через @import. Поэтому, к тому времени, когда скомпилированный источник передается методу sourcemaps.write(), метод не знает, какие стили пришли откуда. У кого-нибудь есть решение для этого? ** Редактировать: ** Ломоть, что это не может быть. Инструменты разработчика распознают, что стили от _normalize.scss, поэтому не может быть. –

ответ

0

Я столкнулся с той же проблемой, не найдя решение. Возможно, я ошибаюсь, но похоже, что у gulp-Sourcemap есть одна или несколько проблем для решения.

https://github.com/floridoo/gulp-sourcemaps/issues/94#issuecomment-165164311

+0

Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – Marusyk

Смежные вопросы