2015-05-14 7 views
0

У меня есть простая задача,Как я могу изменить содержимое строки другим с помощью grunt?

, когда я пишу команду «черновую построить» я хочу это 2 линии, чтобы изменить состояние, например, так:

перед командой:

 baseUrl : 'http://localhost:3000/' 
     //baseUrl : 'http://188.166.18.108/' 

после команда

 //baseUrl : 'http://localhost:3000/' 
     baseUrl : 'http://188.166.18.108/' 

конец изменения сборки обратно:

 baseUrl : 'http://localhost:3000/' 
     //baseUrl : 'http://188.166.18.108/' 

Возможно ли это, если это так? Спасибо, парни!

+0

Где это содержание находится? В js-файл? – jmartins

+0

yep, внутри каталога, полного js-файлов – totothegreat

ответ

3

Вы должны попробовать использовать grunt-string-replace, как это:

'string-replace': { 
    dist: { 
    files: { 
     src: 'path/to/your/file', 
     dest: 'path/to/your/file' 
    }, 
    options: { 
     replacements: [{ 
     pattern: "baseUrl : 'http://localhost:3000/'", 
     replacement: "baseUrl : 'http://188.166.18.108:3000/'" 
     }] 
    } 
    } 
} 

Тогда вы можете иметь только одну строку в файл, без необходимости комментировать его.

baseUrl : 'http://localhost:3000/' 

Кроме того, если вы хотите заменить все вхождения локального хоста, вы можете использовать его в качестве шаблона, и он заменит все на ваш IP адрес:

... 
pattern: "localhost", 
replacement: "188.166.18.108" 
... 

Для изменения обратно от IP-адрес до localhost вы можете добавить новую задачу для замены строки и запустить ее в своей сборке. Это будет что-то вроде:

'string-replace': { 
    prev: { 
    files: { 
     src: 'path/to/your/file', 
     dest: 'path/to/your/file' 
    }, 
    options: { 
     replacements: [{ 
     pattern: "baseUrl : 'http://localhost:3000/'", 
     replacement: "baseUrl : 'http://188.166.18.108:3000/'" 
     }] 
    } 
    }, 
    after: { 
    files: { 
     src: 'path/to/your/file', 
     dest: 'path/to/your/file' 
    }, 
    options: { 
     replacements: [{ 
     pattern: "baseUrl : 'http://188.166.18.108:3000/'", 
     replacement: "baseUrl : 'http://localhost:3000/'" 
     }] 
    } 
    } 
} 

А потом запустить его любит:

grunt.registerTask('replace', ['string-replace:prev', 'string-replace:after']); 
Смежные вопросы