Visual Studio 2017中使用Libman管理客户端库

什么是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管理客户端库的更多相关文章
- 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序
如何在Visual Studio 2017中使用C# 7+语法 前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...
- 在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...
- 【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
Visual Studio 2017中使用正则修改部分内容 最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...
- 在Visual Studio 2017中,.NET(C#)通过Oracle.ManagedDataAccess来连接Oracle数据库
C#如何通过Oracle.ManagedDataAccess来连接Oracle数据库 1.先创建一个项目,鼠标右击项目中的引用,再点击管理NuGet程序包(也可以先下载dll文件,再选添加引用),在搜 ...
- 【C++】GSL(GNU Scientific Library) 的安装及在 Visual Studio 2017 中的使用
GSL 是 GNU 开发并维护的科学计算的库,其中包括: 复数 多项式的根 特殊函数 向量和矩阵 排列 排序 BLAS支持 线性代数 Eigensystems 快速傅立叶变换 正交 随机数 准随机序列 ...
- Visual Studio 2017中使用SourceLink调试ASP.NET Core源码
背景 当我们在学习ASP.NET Core或者调试ASP.NET Core程序的时候,有时候需要调试底层代码,但是当我们在Visual Studio中调试程序的时候,由于一些基础库或者第三方库缺少pd ...
- Visual studio 2017中 Javascript对于Xrm对象模型没有智能提示的解决办法
Visual studio 2017中 Javascript对于Xrm对象模型没有智能提示的解决办法 先上个图.语法提示支持到 Microsoft Dynamics xRM API 8.2 也就是cr ...
- Visual studio 2017 中的Javascript智能提示与调试
1.智能提示 对于JS文件中的API,你若需要让那个JS文件中的方法能够在你写的那个JS文件中能够智能显示的话,直接把它拉进你的JS文件中就好了. 举个例子:你想 在你正在写的a.js文件中引用b.j ...
随机推荐
- 20165319 Exp6 信息收集与漏洞扫描
实验过程 whois 在虚拟机Kali的终端输入命令:whois gitee.com,查询码云的域名注册信息. dig或nslookup域名查询 在kali终端输入dig 网址或nslookup 网址 ...
- c++之STL容器删除元素
1.删除容器中特定值的元素 如果是容器vector,string,,deque,使用erase-remove 例如:erase-remove 注:因为container没有remove,contain ...
- Kali安装Docker
---恢复内容开始--- 第一周 计划安装好docker 准备 审计thinkphp 框架 先把docker 安装的笔记补上 本来是在unbuntu 安装了一遍 并run 了几个镜像和基本操作 ...
- C++函数返回值为类对象但未调用复制构造函数
参考资料:https://blog.csdn.net/sxhelijian/article/details/50977946 不要迷信书本,要学会自己调试程序.
- [转]HTML5 script 标签的 crossorigin 属性到底有什么用?
HTML5 script 标签的 crossorigin 属性到底有什么用? 最近Bootstrap 4已经正式发布了,可能已经有爱尝鲜的小伙伴在 alpha 阶段就尝试过 BS4.不过今天要说的不是 ...
- Python的使用方法
1 安装turtle Python2安装命令: pip install turtule Python3安装命令: pip3 install turtle 因为turtle库主要是在Python2中使用 ...
- 洛谷p3800:Power收集
考虑朴素的dp: 对于每一行的每一个点 枚举能到的所有点(类似bzoj1648 比这题简单的dp) 期望时间复杂度O(NMT) 显然是超时做法 那么我们发现只有k个点对答案有贡献 考虑对每一个有权值的 ...
- 匿名函数 javascript
匿名函数: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- HTMl、CSS、JS的区别:
HTMl.CSS.JS的区别: Html:决定网页的结构和内容----[结构] Css:控制页面的表现样式,如:美化页面----[表现] Js:控制网页的行为,如:给页面加动态的效果----[行为]
- Git 实用指南
传送门: https://mp.weixin.qq.com/s?__biz=MzI3MzgxNDY2MQ==&mid=2247484159&idx=1&sn=2d28513ef ...