Quero atualizar o Bootstrap no ASP.NET Core com NuGet. Eu usei este:
Install-Package bootstrap -Version 4.0.0
Ele adicionou as dependências, mas como faço para adicioná-lo ao meu projeto agora? Qual é o caminho para as dependências locais do NuGet?
.net
asp.net-core
nuget
bootstrap-4
asp.net-core-2.0
desenvolvedor
fonte
fonte
Respostas:
Como outros já mencionados, o gerenciador de pacotes Bower , que geralmente era usado para dependências como essa em aplicativos que não dependem de scripts pesados do lado do cliente, está saindo e recomendando ativamente a migração para outras soluções:
Portanto, embora você ainda possa usá-lo agora, o Bootstrap também anunciou o fim do suporte para ele . Como resultado, os modelos internos do ASP.NET Core estão sendo lentamente editados para se afastar deles também.
Infelizmente, não há um caminho claro a seguir. Isso se deve principalmente ao fato de que os aplicativos da web estão continuamente avançando para o lado do cliente, exigindo sistemas de construção complexos do lado do cliente e muitas dependências. Portanto, se você estiver construindo algo assim, talvez já saiba como resolver isso e pode expandir seu processo de construção existente para simplesmente incluir também Bootstrap e jQuery lá.
Mas ainda existem muitos aplicativos da web que não são tão pesados no lado do cliente, onde o aplicativo ainda é executado principalmente no servidor e o servidor fornece visualizações estáticas como resultado. O Bower preencheu isso tornando mais fácil publicar apenas dependências do lado do cliente sem muito de um processo.
No mundo .NET, também temos o NuGet e com versões anteriores do ASP.NET, poderíamos usar o NuGet também para adicionar dependências a algumas dependências do lado do cliente, pois o NuGet apenas colocaria o conteúdo em nosso projeto corretamente. Infelizmente, com o novo
.csproj
formato e o novo NuGet, os pacotes instalados estão localizados fora de nosso projeto, portanto, não podemos simplesmente fazer referência a eles.Isso nos deixa com algumas opções de como adicionar nossas dependências:
Instalação única
Isso é o que os modelos ASP.NET Core, que não são aplicativos de página única, estão fazendo atualmente. Quando você os usa para criar um novo aplicativo, a
wwwroot
pasta simplesmente contém uma pastalib
que contém as dependências:Se você olhar atentamente para os arquivos atualmente, pode ver que eles foram originalmente colocados lá com o Bower para criar o modelo, mas isso provavelmente mudará em breve. A ideia básica é que os arquivos sejam copiados uma vez para a
wwwroot
pasta para que você possa depender deles.Para fazer isso, podemos simplesmente seguir a introdução do Bootstrap e baixar os arquivos compilados diretamente. Conforme mencionado no site de download, isso não inclui jQuery , portanto, precisamos fazer o download separadamente também; ele contém Popper.js, embora se escolhermos usar o
bootstrap.bundle
arquivo mais tarde - o que faremos. Para jQuery, podemos simplesmente obter um único arquivo “compactado, de produção” do site de download (clique com o botão direito no link e selecione "Salvar link como ..." no menu).Isso nos deixa com alguns arquivos que serão simplesmente extraídos e copiados para a
wwwroot
pasta. Também podemos criar umalib
pasta para deixar mais claro que são dependências externas:Isso é tudo de que precisamos, então agora só precisamos ajustar nosso
_Layout.cshtml
arquivo para incluir essas dependências. Para isso, adicionamos o seguinte bloco ao<head>
:E o seguinte bloco no final do
<body>
:Você também pode simplesmente incluir as versões reduzidas e pular os
<environment>
auxiliares de tag aqui para torná-lo um pouco mais simples. Mas isso é tudo que você precisa fazer para continuar começando.Dependências do NPM
A maneira mais moderna, também se você quiser manter suas dependências atualizadas, seria obter as dependências do repositório de pacotes NPM. Você pode usar o NPM ou o Yarn para isso; no meu exemplo, usarei o NPM.
Para começar, precisamos criar um
package.json
arquivo para nosso projeto, para que possamos especificar nossas dependências. Para fazer isso, simplesmente fazemos isso na caixa de diálogo "Adicionar novo item":Assim que tivermos isso, precisamos editá-lo para incluir nossas dependências. Deve ser algo assim:
Ao salvar, o Visual Studio já executará o NPM para instalar as dependências para nós. Eles serão instalados na
node_modules
pasta. Então, o que resta fazer é colocar os arquivos de lá em nossawwwroot
pasta. Existem algumas opções para fazer isso:bundleconfig.json
para agrupamento e minificaçãoPodemos usar uma das várias maneiras de consumir um
bundleconfig.json
para empacotamento e minificação, conforme explicado na documentação . Uma maneira muito fácil é simplesmente usar o pacote BuildBundlerMinifier NuGet, que configura automaticamente uma tarefa de construção para isso.Depois de instalar esse pacote, precisamos criar um
bundleconfig.json
na raiz do projeto com o seguinte conteúdo:Isso basicamente configura quais arquivos combinar em quais arquivos. E quando construímos, podemos ver que os
vendor.min.css
evendor.js.css
são criados corretamente. Portanto, tudo o que precisamos fazer é ajustar o nosso_Layouts.html
novamente para incluir esses arquivos:Usando um gerenciador de tarefas como o Gulp
Se quisermos avançar um pouco mais para o desenvolvimento do lado do cliente, também podemos começar a usar as ferramentas que usaríamos lá. Por exemplo, Webpack que é uma ferramenta de construção muito usada para realmente tudo. Mas também podemos começar com um gerenciador de tarefas mais simples como o Gulp e fazer as poucas etapas necessárias nós mesmos.
Para isso, adicionamos um
gulpfile.js
na raiz do nosso projeto, com o seguinte conteúdo:Agora, também precisamos ajustar nosso
package.json
para ter dependências emgulp
egulp-concat
:Finalmente, editamos nosso
.csproj
para adicionar a seguinte tarefa, que garante que nossa tarefa Gulp seja executada quando construímos o projeto:Agora, quando construímos, a
default
tarefa Gulp é executada, que executa asbuild-vendor
tarefas, que então constrói o nossovendor.min.css
evendor.min.js
exatamente como fizemos antes. Então, depois de ajustar nosso_Layout.cshtml
como acima, podemos fazer uso de jQuery e Bootstrap.Embora a configuração inicial do Gulp seja um pouco mais complicada do que a
bundleconfig.json
acima, agora entramos no mundo do Node e podemos começar a fazer uso de todas as outras ferramentas legais lá. Portanto, pode valer a pena começar com isso.Conclusão
Embora de repente isso tenha ficado muito mais complicado do que apenas usando o Bower, também ganhamos muito controle com essas novas opções. Por exemplo, agora podemos decidir quais arquivos estão realmente incluídos na
wwwroot
pasta e como eles se parecem exatamente. E também podemos usar isso para dar os primeiros passos no mundo de desenvolvimento do lado do cliente com o Node, o que pelo menos deve ajudar um pouco na curva de aprendizado.fonte
node -v
e obter uma versão atual aqui em nodejs.orgOlhando para isso, parece que a abordagem LibMan funciona melhor para minhas necessidades com a adição de Bootstrap. Eu gosto porque agora está integrado ao Visual Studio 2017 (15.8 ou posterior) e tem suas próprias caixas de diálogo.
Atualização 6/11/2020: bootstrap 4.1.3 agora é adicionado por padrão com o VS-2019.5 (Agradecimentos a Harald S. Hanssen por notar.)
O método padrão que o VS adiciona aos projetos usa o Bower, mas parece que ele está se extinguindo. No cabeçalho da página do bower da Microsofts eles escrevem:
A seguir alguns links levam a Use LibMan com ASP.NET Core no Visual Studio, onde mostra como as bibliotecas podem ser adicionadas usando uma caixa de diálogo interna :
Então para bootstrap apenas (1) selecione o unpkg, (2) digite "bootstrap @ .." (3) Instalar. Depois disso, você só gostaria de verificar se todas as inclusões no _Layout.cshtml ou em outros locais estão corretas. Eles devem ser algo como href = "~ / lib / bootstrap / dist / js / bootstrap ..." )
fonte
Experimente o Libman , é tão simples quanto o Bower e você pode especificar wwwroot / lib / como a pasta de download.
fonte
O que funciona para mim é:
1) Clique com o botão direito em wwwroot> Adicionar> Biblioteca do lado do cliente
2) Digite "bootstrap" na caixa de pesquisa
3) Selecione "Escolher arquivos específicos"
4) Role para baixo e selecione uma pasta. No meu caso escolhi "bootstrap do twitter"
5) Verifique "css" e "js"
6) Clique em "Instalar".
Poucos segundos depois, tenho todos eles na pasta wwwroot. Faça o mesmo para todos os pacotes do lado do cliente que deseja adicionar.
fonte
Libman parece ser a ferramenta preferida pela Microsoft agora. Ele está integrado no Visual Studio 2017 (15.8).
Este artigo descreve como usá-lo e até mesmo como configurar uma restauração executada pelo processo de compilação.
A documentação do Bootstrap informa quais arquivos você precisa em seu projeto.
O exemplo a seguir deve funcionar como uma configuração para libman.json.
}
fonte
Usamos o bootstrap 4 no asp.net core, mas referenciamos as bibliotecas de "npm" usando a extensão "Package Installer" e descobrimos que é melhor do que o Nuget para bibliotecas Javascript / CSS.
Em seguida, usamos a extensão "Bundler & Minifier" para copiar os arquivos relevantes para distribuição (da pasta npm node_modules, que fica fora do projeto) para wwwroot como gostamos para desenvolvimento / implantação.
fonte
Infelizmente, você terá dificuldade em usar o NuGet para instalar o Bootstrap (ou a maioria das outras estruturas JavaScript / CSS) em um projeto .NET Core. Se você olhar para a instalação do NuGet, verá que é incompatível:
se você deve saber onde estão as dependências dos pacotes locais, elas agora estão no diretório de seu perfil local. ie
%userprofile%\.nuget\packages\bootstrap\4.0.0\content\Scripts
.No entanto, sugiro mudar para npm ou bower - como na resposta de Saineshwar.
fonte
BS4 agora está disponível no .NET Core 2.2 . No instalador do SDK 2.2.105 x64 com certeza. Estou executando o Visual Studio 2017 com ele. Até agora, tudo bem para novos projetos de aplicativos da web.
fonte
Por que não apenas usar um CDN? A menos que você precise editar o código do BS, você só precisa fazer referência aos códigos no CDN.
Veja BS 4 CDN aqui:
https://www.w3schools.com/bootstrap4/bootstrap_get_started.asp
No final da página.
fonte
Use o arquivo de configuração nmp (adicione-o ao seu projeto da web), em seguida, adicione os pacotes necessários da mesma forma que fizemos usando bower.json e salve. O Visual Studio irá baixá-lo e instalá-lo. Você encontrará o pacote sob o nó nmp do seu projeto.
fonte