如何在 webapp 或 yo angular 上更新和包含 Twitter Bootstrap 3?

Posted

技术标签:

【中文标题】如何在 webapp 或 yo angular 上更新和包含 Twitter Bootstrap 3?【英文标题】:How to update and include Twitter Bootstrap 3 on webapp or yo angular? 【发布时间】:2013-08-27 15:18:30 【问题描述】:

我使用 yo webapp 或 yo angular 创建新项目,我收到的 Bootstrap 包含版本是 2.3.2,但我想使用最新版本的 Bootstrap。

如何在创建新的 webapp 或 yo angular 时使用命令提示符更新 Bootstrap 包并稍后更新,选择包含 Twitter Bootstrap 是最新版本?

【问题讨论】:

对于尝试将 v3 与 angular-generator 一起使用的任何其他人,该项目刚刚更新并包含它。转到this issue 并按照说明进行操作。 【参考方案1】:

Yeoman 的 webapp 和角度生成器为 Bootstrap 抓取 Sass,它基于 Twitter Bootstrap 的 2.3.2 构建。

运行yo webappyo angular后,可以通过运行以下命令添加Bootstrap 3.0。

$ bower install --save bootstrap

这将为您下载 Bootstrap 3.0。

【讨论】:

D:\Web Design\html-CSS\Bootstrap Test>bower install --save bootstrap bower 克隆 git://github.com/twbs/bootstrap.git C:\Users\TienLoc\AppData \Roaming\npm\node_modules\bower\node_modules\tmp\lib\tmp .js:260 throw err; ^ 错误:在 Process.ChildProcess._handle.onexit (child_process.js:771:34) 的 errnoException (child_process.js:980:11) 处产生 ENOENT ----------------- -------------------------------------------------- ------------------------------ 执行命令时收到错误 您的PATH 中是否安装并使用了 Git? 我安装了 Git,但在我的 PATH 中不可用,我将它添加到我的 PATH,但没有解决问题。 你试过更新凉亭npm update -g bower吗?您可能想看看this thread in in Github,似乎您遇到的问题对于在 Windows 上使用特定 git 设置的某些用户来说是一个常见问题。另外,我上面提供的答案是正确的,您现在遇到的问题与原来的问题是分开的,请您标记为正确吗? tks 你寻求帮助,但命令没有为我的应用程序文件夹设置引导程序,不要更改样式文件或文件夹,无论如何你帮助更正,我标记为正确【参考方案2】:

@micjamking 的回答是一个非常好的提示,但是由于使用 Yeoman 事情应该会更容易,我会为您节省一些谷歌搜索:

    yo angular - 在这里对 Bootstrap 说“不” - 否则它将下载 2.x 版本 bower install --save bootstrap npm install --save-dev grunt-bower-install

    编辑 Gruntfile.js - 插入标记行:

    // ...
     catch (e) 
    
    grunt.loadNpmTasks('grunt-bower-install');             // INSERT
    
    grunt.initConfig(
        yeoman: yeomanConfig,
        'bower-install':                                  // INSERT BEGIN
            target:                                       //   .
                html: '<%= yeoman.app %>/index.html',      //   .
                ignorePath: '<%= yeoman.app %>/'           //   .
                                                          //   .
        ,                                                 // INSERT END
        watch: 
            coffee: 
                files: ['<%= yeoman.app %>/scripts/,*/*.coffee'],
                tasks: ['coffee:dist']
    // ...
    

    编辑 app/index.html - 插入:

    <!-- bower:css -->
    <!-- endbower -->
    

    和:

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

    在适当的地方——那些将注入对 bower 管理的资源的引用(在我们的例子中是 bootstrap 的样式表和 JS)。

    2013 年 10 月 5 日更新: 考虑将 bower:xxx 放在 build:xxx 中。 在我们的例子中,bower:cssbuild:css 中,bower:jsbuild:js 中。 在组装dist 时,这是缩小工作所必需的。但是我认为这种方法不是那么完美 - 请参阅下面的备注。我有点抱歉,因为这与默认情况下 Yeoman 获得的引导版本包含在我们的应用程序中的方式完全相同:-P注意: 要使 css 缩小工作,您可以需要将build:css(.tmp) 更改为build:css(.tmp,app)

    grunt bower-install

准备好了。现在运行服务器 (grunt server),Bootstrap 3 将可用。


备注 - 2013 年 10 月 5 日更新 - 灵感来自 @Luke 在评论中的询问

基于this,我添加了一个子步骤以使dist 缩小工作。

Bower 的注入有效,缩小也有效,但是我对这种方法不太满意。 原因:

    [minor] 我们没有使用 bower 获得的已经缩小的资源。 将所有类型的 CSS/JS 压缩到一个文件中是一个非常蹩脚的想法。在应用程序中包含外部依赖项的更好方法是在 CDN-fetch (dist) 和使用 bower (dev) 获得的本地副本之间进行切换。类似于 Maven 配置文件。 根据应用程序的大小,下载一体化资源,尤其是 javascript,会减慢第一次使用我们的应用程序的速度。 稍后应用程序的其余部分将加载得更快,这是真的,但是当用户第一次进入我们的页面时,那些庞大的 single-filers 将不得不被抢先下载。

@yao tony 也没有发现这种方法很酷 - 请参阅引用的问题。

2013 年 11 月更新:您可以使用 grunt 的 cdnify 任务。很酷


我使用的软件版本:

user@machine:~/somewhere $ yo -v; grunt --version; bower -v
1.0.4
grunt-cli v0.1.9
grunt v0.4.1
1.2.6

【讨论】:

这完全帮助了我。不过有一个问题:你如何让它把 *.min.css|js 版本放在那里呢?在 grunt 构建期间特别有用。 好点@Luke。我找到了解决方法,但我并不为此感到自豪。请参阅我的更新答案。 这让 bower Yeoman 变得更容易了。今天试了一下,最后我没有 bootstrap3 @micjamking 的回答。 error "bower-install.app.src missing" - 好像他们改变了配置github.com/stephenplusplus/grunt-bower-install,添加"src: ['/index.html']"在(或代替)“html: ' @joeriks:几个月前我的回答很有用。现在generator-webappgenerator-angular 依赖它)创建项目,所有这些配置都是开箱即用的(grunt-bower-install 已配置(但未安装),bower-managed boostrap3),所以最好只说'是的,当“你想包括 Twitter Bootstrap 吗?”问题弹出。不过请确保您使用最新版本的yogenerator-angular【参考方案3】:

对于 sass Bootstrap 更新:

这对我有用:

bower install angular-bootstrap
bower install sass-bootstrap

并选择两者的新版本...

也许应该添加一个--save

注意: sass-bootstrap 已弃用,现在是 sass 版本的 bootstrap https://github.com/twbs/bootstrap-sass 的官方凉亭,但我没有尝试过。

【讨论】:

以上是关于如何在 webapp 或 yo angular 上更新和包含 Twitter Bootstrap 3?的主要内容,如果未能解决你的问题,请参考以下文章

如何将带有 angular 2 前端(angular-cli build)的 spring-boot webapp 部署到 Tomcat?

`yo angular` 给出错误:npm ERR!代码 ENOENT npm 错误! errno 34(是的,我已经清理了缓存并设置了 .npmignore)

webapp技术——angular项目实战视频教程

CK2104-Angular JS 仿拉勾网 WebApp 开发移动端单页应用

禁用后退按钮,刷新 Angular 11 中的 webApp。这是保存当前页面所需的 MCQ 类型问题,并且仅限于 moove prev

在Jersey webapp中运行Angular2应用程序