Bootstrap 3.0.1 bower.json ломает задачу grunt-bower

Twitter Bootstrap 3.0.1 изменяет атрибут main в файле bower.json следующим образом:

"main": ["./dist/js/bootstrap.js", "./dist/css/bootstrap.css", "./dist/fonts/*"],

В 3.0.1 добавили пункт "./dist/fonts/*" - в 3.0.0 его не было.

Теперь, когда я запускаю bower:install из моего Gruntfile, я получаю эту ошибку:

Running "bower:install" (bower) task
bower cached https://github.com/twbs/bootstrap.git#3.0.1
bower validate 3.0.1 against https://github.com/twbs/bootstrap.git#>= 3.0.0
bower cached https://github.com/components/jquery.git#2.0.3
bower validate 2.0.3 against https://github.com/components/jquery.git#>= 2.0.0
bower cached https://github.com/components/jquery.git#2.0.3
bower validate 2.0.3 against https://github.com/components/jquery.git#>= 1.9.0
bower install jquery#2.0.3
bower install bootstrap#3.0.1
>> Installed bower packages
grunt-bower copying bower_components/bootstrap/dist/js/bootstrap.js -> public/bootstrap/bootstrap.js
grunt-bower copying bower_components/bootstrap/dist/css/bootstrap.css -> public/bootstrap/bootstrap.css
/Users/hoytk/git/titanium_ui/node_modules/grunt-bower-task/node_modules/bower/node_modules/tmp/lib/tmp.js:261
throw err;
    ^
Error: ENOENT, no such file or directory 'bower_components/bootstrap/dist/fonts/*'

Кажется, grunt-bower-task не может обрабатывать ./dist/fonts/*, но я предполагаю, что мне не хватает чего-то простого. Вот мой Gruntfile.js:

module.exports = function(grunt) {
    // Project configuration
    grunt.initConfig({
            pkg: grunt.file.readJSON('package.json'),
            bower: {
                    install: {
                            options: {
                                    targetDir: './public',
                                    verbose: true
                            }
                    }
            }
    });

    // Load bower task plugin
    grunt.loadNpmTasks('grunt-bower-task');

    // The default task - install the bower dependencies
    grunt.registerTask('default', ['bower:install']);
}

person kurtinatlanta    schedule 31.10.2013    source источник


Ответы (1)


Bower не поддерживает * в определении своего основного файла (именно так эта задача узнает, какие файлы копировать и т. д.).

Я полагаю, что они знают об этом в Bootstrap, но в 3.0.2 он все еще будет глобусом. Еще пытались заставить Бауэра (а может это вина конкретной задачи?) поддерживать глобы.

До тех пор нет хорошего решения. Либо обновите Bootstrap bower.json (чтобы перечислить каждый шрифт явно) (обратите внимание, что bower.json, вероятно, будет перезаписан в следующий раз, когда будет обновление), либо скопируйте файлы вручную :-(

(Обратите внимание, что вам, возможно, придется изменить .bower.json в Bootstrap, если вы пойдете по этому пути (скрытый файл))

person CWSpear    schedule 07.11.2013