2014-07-24 11 views
15

Chcę użyć wtyczki grunt-hash do zmiany nazwy moich plików js. Wtyczka utworzyć nowy plik zawierający mapę plików przemianowany:Grunt - odczytaj obiekt json z pliku

hash: { 
    options: { 
     mapping: 'examples/assets.json', //mapping file so your server can serve the right files 

Teraz potrzeba mi naprawić Linki do tego plików zastępując wszystkie zwyczaje (zmiana nazwy „index.js” do „indeksowanych hash {} js”), więc chcę użyć wtyczki grunt-text-replace. Według dokumentacji muszę cofigure zamienników:

replace: { 
    example: { 
    replacements: [{ 
     from: 'Red', // string replacement 
     to: 'Blue' 
    }] 
    } 
} 

Jak mogłam czytać json plik odwzorowania uzyskać {} hash wartości dla każdego pliku i dostarczyć je zastąpić zadanie?

+0

@Future reader: Jeśli chcesz tylko przeczytać w pliku, użyj ['grunt.file.read'] (https://gruntjs.com/api/grunt.file#grunt.file.read) – jpaugh

Odpowiedz

22
grunt.file.readJSON('your-file.json') 

to prawdopodobnie to, czego szukasz.

Przygotowałem mały test. Mam prosty plik JSON „mapping.json”, który zawiera następujący obiekt JSON:

{ 
    "mapping": [ 
    {"file": "foo.txt"}, 
    {"file": "bar.txt"} 
    ] 
} 

W moim Gruntfile.js Pisałem następujące proste zadania testowego, który odczytuje pierwszy obiekt w „mapowaniu „-array:

grunt.registerTask('doStuff', 'do some stuff.', function() { 
    mapping = grunt.file.readJSON('mapping.json'); 
    grunt.log.write(mapping.mapping[0]["file"]).ok(); 
}); 

podczas wywoływania zadania Grunt, wyjście konsola będzie w następujący sposób:

$ grunt doStuff 
Running "doStuff" task 
foo.txtOK 

Done, without errors. 

mam nadzieję, że to pomoże! :)

+0

Czy jest możliwe podanie zmiennej 'mapowanie' do zastąpienia zadania? Lub wyodrębnij do zmiennej globalnej. – Livon

+0

Nie jestem pewien, czy rozumiem poprawnie zastąpienie zadania, ale czy nie byłoby możliwe odczytanie pliku JSON z wymienionego zadania zamiany? – lumannnn

+0

Właśnie zaktualizowałem moje pytanie. Proszę spojrzeć na konfigurację zastąpienia zadania. – Livon