我想在使用 Visual Studio 2015 开发的 MVC 4 应用程序中使用 Bower。我知道当您有一个 MVC 5 项目时,使用 Visual Studio 2015 Update 1,有一个用于 Bower 管理的漂亮 UI,很像 nuget界面。这部分并不重要。
我目前正在使用 Bower - 我有 npm 和 Bower 设置,并且解决方案中有 package.json 和 Bower.json 文件。保存时,Visual Studio 会自动运行“npm install”,并且我在 package.json 中有一个安装后步骤来运行“bower install”。
我不想将 Bower_components 放入解决方案(或源代码管理)中。我想要的是只保留 json 配置文件,保存时会检索所有依赖项。
这一切在开发中都工作得很好,但是右键单击“Web 项目”、“发布”则不起作用。发布不运行“npm install”,并且不包含未包含在解决方案中的文件(除非它似乎适用于未包含在解决方案中的 nuget 包)。 “发布 Web”功能是使用 IIS 部署将我的 Web 应用程序部署到生产环境的方式。
如何使 Visual Studio Web Publish 与 Bower 配合使用?
另一种选择 - 我已经看到 Team System Builds 有新的钩子(Hook)可以运行 gulp 任务,但我不知道您是否可以通过这种方式直接发布到 IIS。
最佳答案
您可以使用 gulp 或 grunt 脚本(选择您喜欢的任何内容)将正确的文件从 Bower_components 文件夹复制到诸如 script/lib 之类的目录,而不是引用/部署完整的 Bower_components 文件夹。
然后,您可以将这些文件包含在源代码管理中并随后部署它们。
以下是我用来完成此操作的 grunt 文件:
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON("package.json"),
copy: {
main: {
files: [
{
expand: true,
flatten: true,
src: [
'node_modules/vss-sdk/lib/VSS.SDK.js',
'node_modules/moment/moment.js',
'node_modules/moment-timezone/moment-timezone.js',
'node_modules/jquery/dist/jquery.js',
'bower_components/datetimepicker/jquery.datetimepicker.js',
'bower_components/datetimepicker/jquery.datetimepicker.css',
],
dest: 'scripts/lib',
filter: 'isFile'
}
]
}
}
});
grunt.loadNpmTasks("grunt-exec");
grunt.loadNpmTasks("grunt-contrib-copy");
};
关于asp.net - Bower 与 Visual Studio 发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34517032/