2015-05-19 2 views
-1

Я не являюсь мастером регулярных выражений, и я уверен, что в этом случае регулярное выражение необходимо.Grunt: замените значение подстановки при использовании grunt-text-replace

Я в настоящее время замены текста задачи следующим образом:

configSeed: { 
    src: ['src/*/local/app-config.js'], 
    overwrite: true, 
    replacements: [ 
     { 
     from: 'var CONFIG_SEED_STRING = null;', 
     to: 'var CONFIG_SEED_STRING = "{"some_stringified_dynamic_json":"values"}";' 
     } 
    ] 
    } 

Который прекрасно работает в первый раз, когда конфигурационный файл будет сохранен, выше строка заменяется.

Однако, как только строка будет заменена, дальнейшие изменения в конфигурации не будут применены, потому что очевидно, что null больше не найдено.

null Здесь должно быть значение моего подстановочного знака, а значение может быть либо null (изначально), либо вместо него вместо заменой действительной строки JSON.

Если мое предположение о необходимости использования подстановочного знака истинно, это может вызвать рекурсию при сохранении? Или у Grunt есть встроенная защита от этой ситуации? [edit: Я протестировал это, заменив строку на то же значение, рекурсия не возникает.]

Итак, предположим, что безопасно использовать подстановочный знак, где я хочу, могу ли я получить помощь в отношении значения регулярного выражения, которое нужно заменить?

Альтернативные решения также приветствуются, например, моя база кода не меняется настолько, что я мог бы с легкостью заменить код кода, если это возможно.

Благодарим за предоставленную помощь.

+0

Хм, мне интересно, почему нисходящий поток и информация отсутствует? – danjah

ответ

0

Омг, я действительно сделал это, какое чувство. Через какое-то болезненное чтение на регулярное выражение снова:

configSeed: { 
    src: ['src/*/local/app.js'], 
    overwrite: true, 
    replacements: [ 
     { 
     from: /var CONFIG_SEED_STRING = '[^']*'/g, 
     to: 'var CONFIG_SEED_STRING = \'{"foo":"bar"}\'' 
     }, 
     { 
     from: 'var CONFIG_SEED_STRING = null', 
     to: 'var CONFIG_SEED_STRING = \'{"foo":"bar"}\'' 
     } 
    ] 
    } 

Не совершенным, потому что у меня есть два из/тос, но он ловит как null и достоверные данные в формате JSON в между одной цитируемого значение Строка для CONFIG_SEED_STRING.

Мгновенное вознаграждение для написания регулярного выражения! Я разрешаю себе 15 минут работы Youtube.

+0

@FelixKling не уверен, что это будет регистрироваться как упоминание, но если это так - спасибо Феликс: P – danjah

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