Bower ASP.NET Core MVC 缺少 jquery.validate.js 文件

14

更新: Visual Studio - 文件 - 新建 - 项目 - ASP.NET Core Web 应用程序 (.NET Core) - Web 应用程序


我保留了默认名称WebApplication1

  • 展开wwwroot文件夹
  • 展开到wwwroot/lib/jquery-validation

  • 在jquery-validation文件夹中,我们可以看到这个(见下图)
    jquery-validation folder BEFORE UPDATE



- 在src文件夹中右键单击WebApplication1项目 - 点击管理 Bower Packages - Bower Package Manager 屏幕要求更新jqueryjquery-validation (见下图)
BowerPackageManager BEFORE UPDATE

  • 点击更新jquery **一切看起来正常(见下图)
    BowerPackageManager after jquery update

  • 点击更新jquery-validation dist文件夹消失了(见下图)
    enter image description here

jquery-validation AFTER UPDATE


下面的文本是在我更新这个问题之前写的

我在VS2015CE中创建了一个空的ASP.NET Core MVC Web应用程序。 我添加了bower.json文件,该文件管理应用程序的客户端内容。 通过Bower,我下载了jquery、jquery-validate和jquery-validate-unobtrusive。

Bower在wwwroot文件夹中创建了一个名为lib的文件夹。 在~/lib/jquery-validate/的某个地方,我应该能找到jquery.validate.js及其“子”——jquery.validate.min.js。 然而那里并没有这些文件,所以我开始感到怀疑,于是我创建了另一个项目,这次是一个非空的Web应用程序。

然后,我比较了两个应用程序的lib文件夹中的jquery-validate文件夹。

  • 我的第一个项目(作为空项目)具有以下文件夹结构:

enter image description here

dist文件夹不存在


  • 我的第二个项目(创建为WebApplication,而不是空项目)具有以下文件夹结构:

enter image description here

dist文件夹已存在,其中包含jquery.validate.js文件以及它的子文件jquery.validate.min.js。


我做错了什么?还是VS2015的一个bug?或者是Bower的bug?


FYI:jquery.validate.min.js不是jquery.validate.js的“子文件”...它只是经过压缩的版本。您可以使用jquery.validate.jsjquery.validate.min.js,因为它们包含相同的代码。请参阅:https://en.wikipedia.org/wiki/Minification_(programming) - Sparky
我知道它们包含相同的代码,我碰巧知道文件的压缩版本是什么:) 我之所以写它是它的子级,只是因为在Visual Studio中看起来是这样。然而,这并没有回答我的问题。 - pax
它不应该回答你的问题...这就是为什么我将其发布为评论的原因。 - Sparky
1
你可以使用更流行或通用的标签来吸引更多关注,因此我添加了 [tag:asp.net] 和 [tag:visual-studio]。 - Sparky
4个回答

6

你需要运行Grunt文件,该文件会为你构建dist文件夹。目前我发现最好的方法是安装 Grunt Launcher扩展。然后,在jQuery-validation文件夹中右键单击package.json文件,选择“NPM Install”。这样就可以为你构建dist文件夹。

我还没有找到自动化此过程的方法,但我相信一定有。我刚开始使用Gulp,并且在遇到你遇到的问题之前并没有使用Grunt。如果有人有一些提示,那就太好了。祝你好运!


我终于成功安装了Grunt并让它构建了dist文件夹。一直跳舞庆祝,直到我编译我的应用程序时出现了这个错误:MSB4018“FindConfigFiles”任务意外失败。 System.IO.PathTooLongException:指定的路径、文件名或两者都太长了。完全限定的文件名必须少于260个字符,目录名必须少于248个字符。文件夹路径长度为约115个字符(D:\Gebruiker\Documents\Visual Studio 2015\Projects\ToolsApp\src\UI\wwwroot\lib\jquery-validation\dist\localization)。我做错了什么? - Kip ei
我发现在VS2017RC中强制使用jquery-validation版本1.15.0(而不是当前最新版本1.16.0)解决了我的问题,因为它带有dist文件夹。有趣的是,jquery-validation-unobtrusive 3.2.6(当前最新版本)与1.15.0配合良好。 - Dave Mateer

4

右键点击Bower.json文件,选择“打开命令行” ==> “PowerSell”

enter image description here

输入bower update

这就是我解决问题的方法。


2
如果我右键单击Bower.json文件,没有“打开命令行==>PowerShell”选项...有人有其他解决此问题的想法吗? - Kip ei
你可以通过输入“powershell”并按回车键来启动PowerShell。上面的答案使用了非常混乱的语法;)而且它对我也没有用。Bower不是PS命令。这里缺少一步。 - MushyPeas
对我来说,整个lib文件夹都不见了 - 即使在构建和观察bower日志消息之后,似乎一切都正常。打开一个cmd shell到项目目录并运行bower update就解决了问题。谢谢。 - GraehamF
这对我有用。但是首先你要进入CMD,然后输入POWERSHELL.. 然后输入bower update。 - Bohn

1
如果Bower没有恢复正确的软件包:

  • delete everything from the directory value specified in .bowerrc which is located into your web project folder (e.g. wwwroot/lib)
  • open Git Bash (Git SCM for Windows -> when installing, choose Git Bash option)
  • go to your web project folder (where bower.json is located)
  • run the following:

    bower cache clean
    bower install
    

    OR

    bower update
    
以下是一个文件的示例:


{
  "name": "asp.net",
  "private": true,
  "dependencies": {
    "bootstrap": "3.3.7",
    "jquery": "2.2.0",
    "jquery-validation": "1.14.0",
    "jquery-validation-unobtrusive": "3.2.6"
  }
}

-1

很遗憾,以上提供的解决方案都对我无效。
问题是由微软聪明的人们通过VS更新或那些在开源项目上工作的人解决的。
可能是一个bug或者什么的。
不管怎样,感谢大家的帮助。


我真的不明白为什么我的回答被踩了。如果那些踩我的人能解释一下他们不喜欢我的回答的原因,那就太好了。 - pax
1
它被投下负票是因为它缺乏任何有用的信息。至少尝试添加哪个更新解决了它... - rene
正如我在我的回答中指出的那样 - 我不知道哪个更新修复了它。我真的不知道它是如何被修复的。也许我应该不诚实,接受其他人在上面的答案之一...想想看,我仍然可以删除我的答案并这样做... - pax
那听起来是个更好的主意。你也可以留下评论,说明它在你接受的答案上得到了解决。 - rene

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接