什么是Libman

微软在Visual Studio 2017 15.8版本中内嵌了一个新的工具Library Manager。

Library Manager(简称Libman)是一个客户端库管理工具, 使用它可以很容易的管理项目中使用的客户端js库, css库等,Libman相当于一个针对客户端库的Nuget,而且Libman并不是指针对.NET项目的,非.NET项目也可以使用。

注意: 这个工具暂时只是一个实验阶段的工具。

如何使用Libman

下面我们来通过一个小例子演示一下如何使用Libman

添加项目

为了体现Libman并不只针对.NET项目,我们创建一个空文件夹Code, 并在其中创建一个名为libs的子目录, 并使用Visual Studio 2017以Website的方式打开它

然后我们可以右键点击code站点, 选择Manage Client-Side Library

点击之后,code目录中就会生成一个libman.json文件, libman.json是Libman的配置文件,其默认内容如下

{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}

libman.json中的配置项

  • defaultProvider

    这个参数指定了默认使用客户端库的来源, Libman提供了3种可选的来源。

    • cdnjs - 默认来源
    • filesystem - 来自本地文件
    • unpkg - 一个全球cdn
  • defaultDestination

    客户端库的默认存储位置

  • libraries

    客户端库列表

添加jQuery 3.3.1

下面我们修改libraries节点中,添加对jquery 3.3.1的引用

{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "jquery@3.3.1",
"destination": "libs/jQuery_3.3.1",
"provider": "cdnjs"
}
]
}
  • library - 客户端库的名称, 格式是“包名@版本号”
  • destination - 客户端库在当前项目中的存储位置
  • provider - 客户端库的来源

这里如果你不是粘贴代码话,手动输入会出现代码提示,Visual Studio会根据你的输入匹配最接近的包名并列出所有可用的版本。

手动恢复客户端库

修改完成后,我们右键点击libman.json, 选择Restore Client-Side Libraries

我们所需的客户端库就自动下载并导入到项目指定目录中了。

Build时自动恢复客户端库

除了手动恢复客户端库,Visual Studio还提供了一个Enable Restore Client-Side Libraries on Build的选项,即项目Build时自动恢复所需的客户端库。

选择该项之后,Visual Studio会弹出一下提示

点击确认之后,项目中会出现一个package.json, 里面添加了对Microsoft.Web.LibraryManager.Build库的引用

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Web.LibraryManager.Build" version="1.0.163" targetFramework="net40" />
</packages>

如果当前是一个.NET项目,这个引用会出现在csproj文件中

<Project Sdk="Microsoft.NET.Sdk.Web">  

<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.Web.LibraryManager.Build" Version="1.0.163" />
</ItemGroup> </Project>

总结

Libman是对Visual Studio很好的补充(之前大部分都是使用bower等类似组件来管理), 它可以帮助开发人员管理客户端库,避免了开发人员手动下载并引入客户端库造成混乱,有兴趣的同学可以尝试一下。

Visual Studio 2017中使用Libman管理客户端库的更多相关文章

  1. 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序

    如何在Visual Studio 2017中使用C# 7+语法   前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...

  2. 在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序

    前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...

  3. 【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序

    前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...

  4. Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作

    Visual Studio 2017中使用正则修改部分内容   最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...

  5. 在Visual Studio 2017中,.NET(C#)通过Oracle.ManagedDataAccess来连接Oracle数据库

    C#如何通过Oracle.ManagedDataAccess来连接Oracle数据库 1.先创建一个项目,鼠标右击项目中的引用,再点击管理NuGet程序包(也可以先下载dll文件,再选添加引用),在搜 ...

  6. 【C++】GSL(GNU Scientific Library) 的安装及在 Visual Studio 2017 中的使用

    GSL 是 GNU 开发并维护的科学计算的库,其中包括: 复数 多项式的根 特殊函数 向量和矩阵 排列 排序 BLAS支持 线性代数 Eigensystems 快速傅立叶变换 正交 随机数 准随机序列 ...

  7. Visual Studio 2017中使用SourceLink调试ASP.NET Core源码

    背景 当我们在学习ASP.NET Core或者调试ASP.NET Core程序的时候,有时候需要调试底层代码,但是当我们在Visual Studio中调试程序的时候,由于一些基础库或者第三方库缺少pd ...

  8. Visual studio 2017中 Javascript对于Xrm对象模型没有智能提示的解决办法

    Visual studio 2017中 Javascript对于Xrm对象模型没有智能提示的解决办法 先上个图.语法提示支持到 Microsoft Dynamics xRM API 8.2 也就是cr ...

  9. Visual studio 2017 中的Javascript智能提示与调试

    1.智能提示 对于JS文件中的API,你若需要让那个JS文件中的方法能够在你写的那个JS文件中能够智能显示的话,直接把它拉进你的JS文件中就好了. 举个例子:你想 在你正在写的a.js文件中引用b.j ...

随机推荐

  1. 详解 IntelliJ IDEA 配置和启动maven 项目 步骤

    1.本地安装maven 1.1 安装 https://www.cnblogs.com/wkrbky/p/6350334.html?utm_source=itdadao&utm_medium=r ...

  2. net view ERROR 6118

    如上图,使用net view命令出现错误6118(server2012),谷歌百度油管解决了. 尝试1: 把Computer Browser服务打开.https://blog.csdn.net/qq_ ...

  3. Java - Multithreading zz

    Java is a multi-threaded programming language which means we can develop multi-threaded program usin ...

  4. DRAM的原理设计

    在一个电子系统中,CPU.内存.物理存储.IO这些单元必不可少,只不过有的集成在CPU内部,有的分离出来. 这里就针对系统中的内存,此处选用DRAM来进行说明,讲述下基本的原理设计,主要分为以下几个部 ...

  5. jQuery(一)

    jquery介绍 jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. ...

  6. 分布式版本控制系统Git的安装与使用

    分布式版本控制系统Git的安装与使用 作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 我的远端仓库地址是:htt ...

  7. 等高布局display:table

    display:table用法: 父元素:display:table; 子元素:display:table-cell; 注:使用display:table-cell元素部分出现空白缝隙的问题:设置 . ...

  8. 《SpringMVC从入门到放肆》七、模型与视图ModelAndView

    上一篇我们了解了开发一个Controller的4种方法,如果不记得的朋友可以看看上一篇博文,今天我们来继续了解SpringMVC的模型与视图ModelAndView. 一.什么是Model? Mode ...

  9. golang ntp协议客户端

    NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步.NTP基于UDP报文进行传输,使用的UDP端口 ...

  10. 干掉safedog命令

    sc delete safedogguardcenter    shutdown -r -t 00 两条命令搞定