2017-02-16 5 views
0

У меня действительно странная проблема на данный момент.Grunt - невозможно прочитать Json-файл после Powershell ConvertTo-Json

Я создаю список файлов, которые использует мой кран-кэш-брейк. Я генерировать список файлов с помощью этого Powershell скрипт:

$ScriptDir = Split-Path $script:MyInvocation.MyCommand.Path 

$file = @{} 

#GET HTML FILES 
$Dir = get-childitem $ScriptDir\Helix -recurse 
$file = $Dir | where {$_.extension -eq ".html" } | % {$_.FullName} 
#END 

$file | convertto-jSon | out-file $ScriptDir\htmlfiles.json 

это производит файл с содержит что-то вроде этого

[ 
    "C:\\test\test1.html", 
    "C:\\test\test1.html", 
    "C:\\test\test1.html" 
] 

мой кэш Breaker код:

module.exports = function(grunt) { 
grunt.initConfig({ 
    listOfHtmlPaths: grunt.file.readJSON('htmlfiles.json'), 
    cachebreaker: { 
     dev: { 
      options: { 
       match: ['.js', '.css', 'min.css'], 
       src: 
       { path: 'Helix/**/*' } 
      }, 
     files: 
      { src: ['<%= listOfHtmlPaths %>'], } 
     }, 
    }, 
}); 
grunt.loadNpmTasks('grunt-cache-breaker'); 
grunt.registerTask('default', ['cachebreaker']); 
}; 

После я бегу the powershell, я затем запускаю Grunt, но я получаю следующую ошибку:

Ошибка: Unab le для анализа файла «bustAFile.json» (Неожиданный токен?).

Если я скопирую все содержимое bustAFile.json в новый файл в блокноте, ничего не измените. Оно работает.

Действительно ли Poweshell добавляет странную кодировку, которую я не вижу?

ответ

0

заставляя PowerShell для вывода в кодировке ASCII фиксированной моя проблема

$file | convertto-jSon -Compress | out-file $ScriptDir\bustAFile.json -encoding ascii 

оказывается, что Grunt не может читать другие кодировки при обработке JSON.

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