【问题标题】:How Does One Include Bootstrap in Node Project如何在节点项目中包含引导程序
【发布时间】:2016-10-12 02:19:41
【问题描述】:

我有一个使用基本 npm 命令搭建的 MEAN 堆栈项目。目前,Bootstrap 包含在 CDN 中:

link(rel='stylesheet', href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css')

我的问题是如何使用 npm 添加引导程序,以便项目与 CDN 包含相同。特别是当我跑步时

npm install bootstrap

在 node_modules 中创建了一个 boostrap 目录。但是,如果我尝试包含该目录中的 bootstrap.css,它会破坏 glyphicon 字体。有人可以建议如何做吗?

附:我也会对 AngularJS 本身提出同样的问题。

【问题讨论】:

    标签: javascript node.js twitter-bootstrap npm npm-install


    【解决方案1】:

    您可以使用浏览器包管理器,即 bower

    Bower 为前端包管理问题提供了一个通用的、不偏不倚的解决方案,同时通过一个 API 公开包依赖模型,该 API 可以被更加固执的构建堆栈使用。没有系统范围的依赖,不同应用之间没有共享依赖,依赖树是扁平的。

    如果您想了解更多关于哪个更好和更可靠的知识,您也可以阅读link

    Why Not npm

    npm 和 Bower 的主要区别在于安装包依赖项的方法。 npm 分别为每个包安装依赖项,因此会生成一个很大的包依赖关系树(node_modules/grunt/node_modules/glob/node_modules/...),其中可能存在同一个包的多个版本。对于客户端 JavaScript,这是不可接受的:您不能将 jQuery 或任何其他库的两个不同版本添加到页面。使用 Bower,每个包都安装一次(jQuery 将始终位于 bower_components/jquery 文件夹中,无论有多少包依赖它)并且在依赖项冲突的情况下,Bower 根本不会安装与已经存在的包不兼容的包已安装。

    Bower 安装

    你只需简单地安装包

    语法

    npm install -g bower
    

    您可以参考 Doc 了解完整信息。

    例如:

    目录结构

    project Folder
      + bower_components
         + bootstrap
           + dist
             + css
               + bootstrap.css
         + jquery
           + jquery.js
      + public
        + index.html
      + app.js
    

    现在可以在 app.js 中设置静态路径

    app.use(express.static(path.join(__dirname, 'bower_components')));
    

    现在您可以简单地在 index.html 文件中使用

    <!DOCTYPE html>
    <html>
    <head>
        <title>{{ title }}</title>
        <link rel='stylesheet' href='/bootstrap/dist/css/bootstrap.css' />
    </head>
    <body>
    {{{ yield }}}
    </body>
    <script src="/bootstrap/dist/jquery/jquery.js"></script>
    </html>
    

    截图

    带有 app.js 文件的目录结构

    普通 Html 文件

    【讨论】:

    • 那么,当我安装 bower 时,是否需要创建一个 bower.json 文件来指示我想要的包?之后呢?
    • 您可以在使用 bootstrap、angluar 等外部库时安装 bower。是的,您可以创建 bower.json,它可以帮助您随时更新库。它是前端解决方案,非常易于使用。将包名添加到您的 bower.json 中,或者简单地使用包名进行安装。
    • 我仍在尝试阐明如何将内容包含到我的 HTML 文件中。特别是凉亭管理与 npm 的管理有何不同?毕竟 npm 也会创建目录和下载包。
    • 否决,请回答操作问题。他想使用 npm 而不是 bower。更新:如果你认为他应该使用 bower 而不是 npm ,请说明你的理由
    • @eenagy 我提供了正确的方法如何使用这个东西,即使我给出了所有的细节。而这才是node js中使用前端库的正确方法。
    猜你喜欢
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多