Visual Studio 2015 RTM - bower_components去了哪里?

时间:2015-07-22 16:01:30

标签: bower visual-studio-2015

在Visual Studio 2015 RTM中,bower_components文件夹已经消失,软件包直接保存到wwwroot / lib /文件夹。这可以通过以下事实来验证:默认gulpfile不再具有将文件从bower_components复制到wwwroot的功能。

但是在默认的project.json中,即使文件夹不再存在,bower_components仍然在“exclude”属性中。可能是一种疏忽?

有谁知道这是怎么回事?我在发行说明或错误修复和已知问题文章中没有看到任何相关内容。此外,我认为wwwroot文件夹的全部内容仅包含实际网站所需的白名单文件。其中,我想这里没有 伤害 来使库代码可用,它实际上让我们的生活更容易,因为我们添加了新的库,但在整个测试期间,bower_components文件夹是非常严格分开。

https://www.visualstudio.com/en-us/news/vs2015-vs.aspx

https://support.microsoft.com/en-us/kb/3025135

2 个答案:

答案 0 :(得分:10)

我一直在尝试调整我的项目以匹配asp.net 5最新VS项目模板中的更改。

据我所知,之前有一项任务是将bower_components文件夹中的内容复制到wwwroot / lib中

但现在不需要,因为他们将bower文件直接放在wwwroot / lib中,这是因为在web应用程序的根目录中有一个名为.bowerrc的新文件,其中包含以下内容:

{
  "directory": "wwwroot/lib"
}

所以我认为不再需要bower_components文件夹了 gruntfile.js中也有很多相关的变化。

答案 1 :(得分:2)

据我所知,通过使用bower_components文件夹代替wwwroot / lib文件夹中的内容,可以通过gulp添加更多工作。但这转化为更多的控制。我还注意到有一个bower_componets文件夹,我得到了更多的内容,如自述文件,源代码,更改日志等...最好的选择是以这种或那种方式做到这一点。或者只需按照以下步骤操作即可。

通过拥有一个bower_components文件夹我可以控制缩小,我可以控制哪些文件放入wwwroot / lib文件夹。我还可以控制我不想在网上找到哪些文件,如.bower.json,LICENSE或MIT-LICENSE.txt等。我也可以自己组合和缩小文件,或者至少我可以控制* min.js或min.css文件仅在不发布非min文件的情况下发布。将bower组件发布到wwwroot / lib给我看起来好像wwwroot / lib比流内衬更臃肿。

我做了以下

  1. 显示所有文件
  2. 右键单击bower.json |在解决方案探索中显示
  3. 扩展了bower.json文件编辑.bowerrc文件并更改为:

    {
         "directory": "bower_components"
    }
    
  4. 切换显示所有文件以隐藏文件。

  5. 右键单击依赖关系|还原包。这会将bower软件包恢复到bower_components文件夹中。
  6. 删除wwwroot / lib文件夹
  7. 这是一个瘦gulp.js,除了min文件,没有地图文件,没有min文件,没有许可证文件等等都不会复制任何东西......对于bootstrap,这将复制字体文件

    "use strict";
    
    var gulp = require("gulp"),
        rimraf = require("rimraf")
    
    var paths = {
        bower: "./bower_components/",
        lib: "./wwwroot/lib/"
    };
    
    gulp.task('clean', function (callback) {
        rimraf(paths.lib, callback);
    });
    
    gulp.task('default', ['clean'], function () {
        var bower = {
            "bootstrap": "bootstrap/dist/**/*.{min.js,min.css,ttf,svg,woff,eot}",
            "jquery": "jquery/dist/jquery.min.js",
            "jquery-validation": "jquery-validation/dist/jquery.validate.js",
            "jquery-validation-unobtrusive": "jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"
        };
    
        for (var destinationDir in bower) {
            gulp.src(paths.bower + bower[destinationDir])
                .pipe(gulp.dest(paths.lib + destinationDir));
        }
    });
    
  8. 还有更多内容,但我认为这是一个好的开始。 _Layout.cshtml需要修改。还需要一个gulp任务,它将创建lib文件夹的开发版本,该文件夹将包含无min文件或包含地图文件。

    我认为你最后需要将它添加到project.json文件

      "exclude": [
        "wwwroot",
        "node_modules",
        "bower_components"
      ],
    

    这个

      "scripts": {
        "prepublish": [ "npm install", "bower install", "gulp clean", "gulp default" ]
      }