Grunt - 从文件中读取json对象

Liv*_*von 16 json gruntjs

我想使用grunt-hash插件重命名我的js文件.此插件创建一个包含重命名文件映射的新文件:

hash: {
    options: {
        mapping: 'examples/assets.json', //mapping file so your server can serve the right files
Run Code Online (Sandbox Code Playgroud)

现在我需要通过替换所有用法来修复这些文件的链接(将'index.js'重命名为'index- {hash} .js'),所以我想使用grunt-text-replace插件.根据文档我需要配置替换:

replace: {
  example: {
     replacements: [{
       from: 'Red', // string replacement
       to: 'Blue'
     }]
   }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能读取json映射文件以获取每个文件的{hash}值并提供它们来替换任务?

lum*_*nnn 25

grunt.file.readJSON('your-file.json')
Run Code Online (Sandbox Code Playgroud)

可能就是你要找的东西.

我已经设置了一点测试.我有一个简单的JSON文件'mapping.json',它包含以下JSON对象:

{
  "mapping": [
    {"file": "foo.txt"},
    {"file": "bar.txt"}
  ]
}
Run Code Online (Sandbox Code Playgroud)

在我的Gruntfile.js中,我编写了以下简单的测试任务,该任务读取'mapping'数组中的第一个对象:

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

调用Grunt任务时,控制台输出如下:

$ grunt doStuff
Running "doStuff" task
foo.txtOK

Done, without errors.
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!:)