【问题标题】:Wiredep says Bower packages are not installedWiredep 说没有安装 Bower 包
【发布时间】:2015-10-16 17:45:30
【问题描述】:

我有以下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 中指定的实际 JavaScript:

{
  "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 实际上正在安装它。

谁能帮我解决这个问题?

【问题讨论】:

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


    【解决方案1】:

    脚本的这一部分:

    目录:'./bower_components/',

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

    【讨论】:

    • 嗨乔! :-) 谢谢。我去看看。
    • 乔,这解决了问题中的具体问题。但是,它仍然无法正常工作,因为虽然它说 _Layout 页面已更改,但组件不存在。
    • 对不起,我不知道wiredep是什么或它应该做什么,也许其他人可以帮助解决这个问题
    • 我必须正确指定目的地的结束路径。 :-) 它在错误的位置。如果您在布局页面中指定占位符,Wiredep 会自动在您的布局页面中以正确的顺序注入您的凉亭组件。这样一来,您就不必在安装新软件包后复制添加对样式表和 javascripts 的引用。感谢您的帮助!
    • 这听起来不像我想要使用的东西。一些凉亭的东西我会在生产中使用cdn,其他的我可能会组合成捆绑包。如前所述,_ValidationScriptsPartial.cshtml 对如何添加脚本非常有启发性。甚至最新项目模板中的标准 _Layout.cshtml 显示了如何在 dev 中的生产和本地 bower 文件中使用来自 cdn 的引导程序。
    猜你喜欢
    • 2015-09-02
    • 2014-11-26
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多