我正在学习使用Visual Studio 2017 for Mac来开发ASP.NET Core MVC应用程序。到目前为止,还不错,但是我的问题是我不知道如何处理/管理JavaScript库。假设您必须使用Bower(每个新项目中的4个默认依赖项在其各自的文件夹中都有一个.bower.json文件),但是项目上没有bower.json文件,老实说,我不知道从哪里开始。

我认为应该从在开发计算机中安装Bower开始,但是如何将其与VS中的构建动作集成?我假设在适当的构建中,Bower应该下载并安装我的所有JS依赖项。

我已经搜索了答案,但是大多数搜索结果都表明Bower已过时,我应该使用LibMan,并且没有关于在macOS上使用LibMan的教程。

最佳答案

好吧,在尝试了几次技巧之后,我终于找到了解决方案。如果有人遇到相同的问题,请在此处发布。

两件事情:


该解决方案使用Libman代替Bower。
我想您已经安装了VS for Mac和.NET Core SDK,并且已经创建了一个内部带有ASP.NET Core MVC项目的解决方案。


请执行下列操作:


在终端中使用以下命令安装Libman:dotnet tool install -g Microsoft.Web.LibraryManager.Cli
删除项目中lib/文件夹下的所有文件夹。您将让Libman管理所有JS依赖项。
将JSON文件添加到您的项目。称为libman.json
将以下内容添加到libman.json并保存:

{
    "version": "1.0",
    "defaultProvider": "cdnjs",
    "libraries": [
        {
            "library": "[email protected]",
            "destination": "wwwroot/lib/bootstrap"
        },
        {
            "library": "[email protected]",
            "destination": "wwwroot/lib/jquery"
        },
        {
            "library": "[email protected]",
            "destination": "wwwroot/lib/jquery-validation"
        },
        {
            "library": "[email protected]",
            "destination": "wwwroot/lib/jquery-validation-unobtrusive"
        }
    ]
}

转到“项目”>“ [PROJECT_NAME]”选项...,然后在“构建”>“自定义命令”中添加一个“先构建”命令。该命令为/Users/[YOUR_USERNAME]/.dotnet/tools/libman restore,在“工作目录”字段中,使用宏${ProjectDir}。保存更改。


现在,每次编译解决方案(或特定项目)时,Libman都会获取并安装libman.json中记录的库。如果文件已在目标位置,则Libman不会执行任何操作。如果先前的Libman执行下载了这些库,那么它将从其内部缓存中检索它们。

希望这可以帮助。

09-25 22:12