Поскольку след не предоставляет информацию о поврежденном файле для меня лучший способ определить, что ошибка является использованием , мерзавец делит пополам.
Это позволяет Вам находить фиксацию, которая представляет ошибку.
Позволяют нам предположить, что Вы находитесь на ведущем устройстве, сначала Вы запускаете, мерзавец разделите пополам:
$ git bisect start
$ git bisect bad
Затем Вы возвращаетесь к предыдущему, рабочему пересмотру, давайте предположим 20 пересмотров назад.
$ git checkout HEAD~20
Вы выполняете ту же команду
$ RAILS_ENV=production rake assets:precompile
, Если она работает, Вы отмечаете пересмотр как хороший:
$ git bisect good.
мерзавец перейдет к другому пересмотру, Вы выполняете ту же команду снова (assets:precompile), и базирующийся на выводе отмечают его как хороший / плохо.
меньше чем через 1 минуту необходимо смочь найти то, что является фиксацией, которая представила проблему.
Если ответ Radovan не работает на Вас из-за проблемы в библиотеке вместо Вашего кода, можно попытаться обновить Uglifier и включить компиляцию ES6.
Gemfile.lock
gem 'uglifier', '~> 4.1'
config/environments/production.rb
config.assets.js_compressor = Uglifier.new(harmony: true)
Я подозреваю в этом js файл, у Вас есть что-то как следующее:
var User = {
getName() {
alert("my name");
}
}
Замена его с правильным форматом,
var User = {
getName: function() {
alert("my name");
}
}
работала на меня.
Ошибка ясно говорит, она ожидает ":" но это нашло" (".
Я не уверен в Вашей цепочке сборки, но я добрался здесь путем вставки того же сообщения об ошибке в Google.
, Который называют 'краткими свойствами' в ES2015. Я использую Babel 6 с Большим глотком и должен был сделать npm install babel-plugin-transform-es2015-shorthand-properties --save-dev
и добавить, что преобразовывают к моим плагинам столпотворения.
.pipe(babel({
plugins: [
'transform-es2015-shorthand-properties'
]
}))
Я мог использовать https://skalman.github.io/UglifyJS-online / для идентификации корректного номера строки, где проблема была. К счастью по крайней мере, на корректный файл, который имел проблему, указал пехотинец, уродуют
Здесь я нашел справку для той же проблемы, которую Вы имели.
консоль направляющих Выполнения и:
JS_PATH = "app/assets/javascripts/**/*.js";
Dir[JS_PATH].each do |file_name|
puts "\n#{file_name}"
puts Uglifier.compile(File.read(file_name), harmony: true)
end
Это покажет Вам файл и строку, где Uglifier делает проблему.
В моей проблеме случая с функциональным определением как
function someFunctionName(param1, param2=defaultValue){
//code
}
из-за вышеупомянутого функционального определения я получал ошибку, поскольку это не поддерживается Uglifier. Параметры по умолчанию являются спецификацией языка ES6/ES2015.
Для решения вышеупомянутой проблемы можно относиться Набор значение параметра по умолчанию для функции JavaScript
Просто встретьтесь с той же проблемой.
Мой случай - кто-то используемый синтаксис, это - только поддержка начиная с ES2015, исключая
function someThing(param = true) {
// do something here
};
, в то время как это не поддерживается в нашей среде.
И сообщения об ошибках на самом деле сгенерирован Uglifer.