Как скопировать зависимости Bower в wwwroot с помощью wiredep (mvc 6)

Я попытался создать задачу, которая позволяет загружать и внедрять зависимости в мой индекс с помощью gulp и wiredep. Это работает, но, как и моя папка Bower_components, ее нет в моем wwwroot, ссылки на мои скрипты неверны. Ошибки: «Uncaught SyntaxError: Unexpected token ‹» для всех моих ссылок. Итак, я попытался изменить папку назначения, но когда я запускаю свою задачу, я получаю новую ошибку «бутстрап не установлен». И я не могу дважды переустанавливать загрузчик в одном и том же проекте.

Это моя задача глотка:

eval("var project = " + fs.readFileSync("./project.json"));

gulp.task('bower', function () {
    gulp.src("./" + project.webroot + "/index.html")
        .pipe(wiredep({
            directory: "./bower_components/",
            bowerJson: require('./bower.json')
        }))
        .pipe(gulp.dest("./" + project.webroot + "/"))
});

архитектура моего проекта: архитектура моего проекта:

и мой index.html (заголовок):

  <!--bower:css-->
    <link rel="stylesheet" href="../bower_components/bootstrap/dist/css/bootstrap.css" />
    <link rel="stylesheet" href="../bower_components/bootstrap-touch-carousel/dist/css/bootstrap-touch-carousel.css" />
    <!--endbower-->
    <!--bower:js-->
    <script src="../bower_components/jquery/dist/jquery.js"></script>
    <script src="../bower_components/bootstrap/dist/js/bootstrap.js"></script>
    <script src="../bower_components/jquery-ui/jquery-ui.js"></script>
    <script src="../bower_components/jquery-validation/dist/jquery.validate.js"></script>
    <script src="../bower_components/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
    <script src="../bower_components/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
    <script src="../bower_components/hammer.js/hammer.js"></script>
    <script src="../bower_components/bootstrap-touch-carousel/dist/js/bootstrap-touch-carousel.js"></script>
    <script src="../bower_components/angular/angular.js"></script>
    <script src="../bower_components/angular-route/angular-route.js"></script>
    <script src="../bower_components/angular-resource/angular-resource.js"></script>
    <script src="../bower_components/angular-ui-router/release/angular-ui-router.js"></script>
    <script src="../bower_components/angular-animate/angular-animate.js"></script>
    <script src="../bower_components/angular-cookies/angular-cookies.js"></script>
    <script src="../bower_components/angular-parse/angular-parse.js"></script>
    <script src="../bower_components/angular-locker/dist/angular-locker.min.js"></script>
    <!--endbower-->

Итак, я уже проверил это для своей задачи gulp:

eval("var project = " + fs.readFileSync("./project.json"));

    gulp.task('bower', function () {
        gulp.src("./" + project.webroot + "/index.html")
            .pipe(wiredep({
                directory: "./"+project.webroot+"bower_components/",
                bowerJson: require('./bower.json')
            }))
            .pipe(gulp.dest("./" + project.webroot + "/"))
    });

С этим кодом ошибка в том, что Bower не установлен.

Спасибо за всю помощь, которую вы могли мне оказать.


person JonathanTheBrosh    schedule 24.08.2015    source источник


Ответы (1)


Если у вас есть файл .bowerrc с:

{
    "directory": "wwwroot/lib"
}

затем при установке Bower он будет скопирован в папку назначения.

person Poul K. Sørensen    schedule 21.10.2015
comment
Хотя это работает и копирует зависимости Bower в эту папку, не было бы лучше, если бы зависимости (со всей их раздутостью) были установлены вне wwwroot/, а в wwwroot/lib были скопированы только необходимые минифицированные/обработанные файлы? Я понимаю, что ОП просит вашего точного решения. Мне просто интересно, есть ли лучший способ! - person igarciaoliver; 01.04.2016