2015-12-29 2 views
3

Я хочу использовать Bower в приложении MVC 4, разработанном в Visual Studio 2015. Я знаю, когда у вас есть проект MVC 5 с обновлением Visual Studio 2015 Update 1, есть хороший интерфейс для управления Bower , как и интерфейс nuget. Эта часть не очень важна.Bower with Visual Studio Опубликовать

В настоящее время я использую беседку - у меня есть настройка npm и bower, и у меня есть файлы package.json и bower.json в решении. Когда вы сохраняете, Visual Studio автоматически запускает «npm install», и у меня есть шаг postinstall в package.json для запуска установки «bower install».

Я не хочу вставлять bower_components в решение (или управление источником). Я хочу просто сохранить файлы конфигурации json, и при сохранении все зависимости будут восстановлены.

Все это прекрасно работает в разработке, но то, что не работает, - это щелчок правой кнопкой мыши по веб-проекту, публикация. Публикация не запускает «npm install» и не включает файлы, не включенные в решение (за исключением того, что он как-то работает с пакетами nuget, не включенными в решение). Функциональность «Опубликовать в Интернете» - это то, как мои веб-приложения развертываются с использованием развертывания IIS.

Как я могу сделать работу в Visual Studio Web Publish с Bower?

Альтернатива - я видел, что есть новые крючки для Team System Builds, которые будут запускать задачи gulp, но я не знаю, что вы можете публиковать непосредственно в IIS таким образом.

+0

В mvc5 не только опубликованная папка www. Понятно, что компоненты вашей акустики не будут опубликованы, потому что это НЕ в папке www. –

+0

@SteveKennedy - Я думаю, вы говорите, что такая же проблема будет существовать с проектом MVC5? – user210757

+1

@SteveKennedy Я думаю, вы думаете о MVC6/ASP.NET 5. В MVC4 и 5 не было концепции wwwroot. – Jimmy

ответ

4

вместо ссылки на всю папку bower_components и вы можете использовать скрипт gulp или grunt (выберите то, что вам нравится), чтобы скопировать правильные файлы из папки bower_components в нечто вроде скриптов/lib.

Затем вы можете включить эти файлы в исходный код и впоследствии развернуть их.

Ниже файл пехотинца, который я использую для достижения этой цели:

module.exports = function (grunt) { 
    grunt.initConfig({ 
     pkg: grunt.file.readJSON("package.json"), 
     copy: { 
      main: { 
       files: [ 
        { 
         expand: true, 
         flatten: true, 
         src: [ 
          'node_modules/vss-sdk/lib/VSS.SDK.js', 
          'node_modules/moment/moment.js', 
          'node_modules/moment-timezone/moment-timezone.js', 
          'node_modules/jquery/dist/jquery.js', 
          'bower_components/datetimepicker/jquery.datetimepicker.js', 
          'bower_components/datetimepicker/jquery.datetimepicker.css', 
         ], 
         dest: 'scripts/lib', 
         filter: 'isFile' 
        }    
       ] 
      } 
     } 
    }); 

    grunt.loadNpmTasks("grunt-exec"); 
    grunt.loadNpmTasks("grunt-contrib-copy"); 
}; 
+1

Да, сейчас мне нужно, но мне нужно это для работы с функцией Web Publish в Visual Studio. Это намного больше, включая развертывание на удаленном сервере IIS через http. – user210757

+0

Я не говорю, что вы не должны использовать Web Deploy. Я предлагаю вам переместить определенные файлы из вашего каталога bower в исходное дерево вашего проекта и включить эти конкретные файлы в ваш проект. Затем они будут развернуты с помощью Web Deploy. –

+2

Я вижу. Я понимаю, что могу это сделать, но я стараюсь избегать этого.Я не хочу, чтобы компоненты балансировки находились в решении или контроле источника, а только bower.json, ссылаясь на необходимые компоненты. Извините, если это не ясно. EDIT. Я думаю, что то, что вы предлагаете, немного другое, вы предлагаете хранить файлы «dist» только в решении, и они помещаются туда по решению gulp? – user210757

-1

В ASP.NET Ядра (т.е. MVC6), Бауэр настроен (в файле .bowerrc), чтобы добавить скрипты Wwwroot/lib, а не папкой bower_components. Это содержимое публикуется Visual Studio.

Тот же подход с использованием файла .a bowerrc будет работать для веб-сайтов MVC4 (по крайней мере, если вы используете Visual Studio 2015). Тем не менее, он также проверяется на управление версиями, поэтому может быть не совсем то, что вы хотите.

Файл .bowerrc можно использовать, чтобы заниматься различными вещами (см. http://bower.io/docs/config/). Однако, чтобы заставить Bower добавлять сценарии к проекту в ~/scripts/lib, вы просто добавляете следующий json:

{ 
    "directory": "scripts/lib" 
} 
+1

Я видел это, но я не хочу, чтобы все это содержимое. Пакет bower - это все исходные файлы, файлы сборки и файлы dist. Все, что вы действительно хотите включить в свою версию, - это файлы dist, которые вы используете, так что вам нужно что-то вроде gulp, чтобы захватить то, что вы хотите (и concat/minify и т. д.). На самом деле развертыванию нужен крючок для глотки или хрюкать, как кажется, как и новая сборка TFS. Но у развертывания есть хорошие возможности для непосредственного развертывания на сайте IIS ... – user210757

+1

Как насчет использования команды gulp в событии после сборки сборки проекта, чтобы извлечь то, что вы хотите? –

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