Wiredep说没有安装Bower包

时间:2015-07-26 14:05:52

标签: visual-studio npm gulp bower asp.net-core

我有以下wiredep任务:

gulp.task('wiredep', function () {
    log('Installing Bower Components in HTML files...)
    return gulp
        .src('./Views/Shared/_Layout.cshtml')
        .pipe(wiredep({
            bowerJson: require('./bower.json'),
            directory: './bower_components/',
            ignorePath: '../..'
        }))
        .pipe(gulp.dest('.'));
});

目标是转换

<!-- bower:js -->
<!-- endbower -->

到我的bower.json中指定的实际JavaScripts:

{
  "name": "ASP.NET",
  "private": true,
  "dependencies": {
    "bootstrap": "3.0.0",
    "hammer.js": "2.0.4",
    "jquery": "2.1.4",
    "knockout": "3.3.0"
  }
}

当我运行任务时,我得到以下输出:

[15:53:06] Starting 'wiredep'...
[15:53:06] Installing Bower Components in HTML files...
events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: Error: bootstrap is not installed. Try running `bower install` or remove the component from your bower.json file

我确实看到了wwwroot / lib中的软件包,所以我认为Bower实际上正在安装它。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

你脚本的这一部分:

目录:&#39; ./ bower_components /&#39;,

正在使用错误的路径/ bower_components /是bower组件的默认安装文件夹(实际上是用于将文件放在那里的beta 4 VS 2015 RC)但是在最新的VS项目模板中,根目录中有一个文件.bowerrc该应用程序告诉它将bower组件放在wwwroot / lib下而不是默认文件夹名称。所以目录必须是./wwwroot/lib/'我想。