Как заменить несколько строк в глотке - PullRequest
0 голосов
/ 03 декабря 2018

У меня проблема с заменой нескольких строк кода на gulp-replace.Вот код, который мне нужно сделать удалить

@font-face {
  font-family: Vaadin-Icons;
  src: url(../valo/fonts/vaadin-icons/Vaadin-Icons.eot);
  src: url(../valo/fonts/vaadin-icons/Vaadin-Icons.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.woff) format("woff"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.ttf) format("truetype"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.svg#icomoon) format("svg")
}

Мне нужно заменить приведенный выше фрагмент на пустой пробел.

Вот мой глоток:

replace = require('gulp-replace'),

gulp.task('minify-core-styles', function() {
    gulp.src(PATH_CSS_CORE)
        .pipe(replace(vaadin_icon, ' '))
        .pipe(autoprefixer({ browsers: AUTOPREFIXER_BROWSERS }))
        .pipe(concat('styles.css'))
        .pipe(min())
        .pipe(gulp.dest(PATH_CSS_CORE_DEST));
});

ИВ своем глотке я создал переменную с именем vaadin_icon, которая содержит строки.

var vaadin_icon = '@font-face {' +
    'font-family: Vaadin-Icons;' +
    'src: url(../valo/fonts/vaadin-icons/Vaadin-Icons.eot);' +
    'src: url(../valo/fonts/vaadin-icons/Vaadin-Icons' +
    '.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.woff) format("woff"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.ttf) format("truetype"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.svg#icomoon) format("svg")' +
    '}';

Что я сделал не так?

1 Ответ

0 голосов
/ 03 декабря 2018

Вы не учитываете новые строки или символы табуляции / пробелы в своей декларации @ font-face.Поэтому попробуйте:

var vaadin_icon = '@font-face {\r\n' +
  '  font-family: Vaadin-Icons;\r\n' +
  '  src: url(../valo/fonts/vaadin-icons/Vaadin-Icons.eot);\r\n' +
  '  src: url(../valo/fonts/vaadin-icons/Vaadin-Icons' +
  '.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.woff) format("woff"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.ttf) format("truetype"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.svg#icomoon) format("svg")\r\n' +
'}';

Примечание. Я не знаю, какую ОС вы используете, поэтому вам, возможно, придется попробовать что-то кроме \r\n для перевода строки.Вы также можете сделать это с помощью литералов шаблона.

РЕДАКТИРОВАТЬ: Также проще использовать регулярное выражение в вашем случае.

var fontFaceRegEx = /@font-face.*(.*\r\n)*}/g;

, а затем использовать замену канала:

.pipe(replace(fontFaceRegEx, ' '))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...