当前位置: 首页 > 面试题库 >

通过npm安装Twitter Bootstrap的目的?

白星渊
2023-03-14
问题内容

问题1:

通过npm安装Twitter Bootstrap的目的到底是什么?我认为npm是用于服务器端模块的。自己提供引导文件比使用CDN更快吗?

问题2:

如果要npm安装Bootstrap,我将如何指向bootstrap.js和bootstrap.css文件?


问题答案:
  1. 使用CDN的要点是它 速度更快 ,首先是因为它是一个 分布式 网络,但是其次,因为静态文件被浏览器缓存,并且很有可能出现例如jquery您的站点的CDN 库用户的浏览器已经下载了用途,因此文件已被缓存,因此没有不必要的下载发生。话虽如此,提供一个后备仍然是一个好主意。

现在,引导程序的npm包的要点

它提供了bootstrap的 javascript 文件作为 模块
。如上所述,这使require使用browserify成为可能,这是最可能的用例,而且据我所知,引导程序在npm上发布的主要原因。

  1. 如何使用它

想象以下项目结构:

    项目
|-node_modules
|-公共
| |-CSS
| |-img
| |-js
| |-index.html
|-package.json

在你的index.html,你可以引用cssjs文件是这样的:

<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>

这是最简单的方法,并且可以正确处理.css文件。但是最好在bootstrap.js文件中的某些位置包含这样的public/js/*.js文件:

var bootstrap = require('bootstrap');

而且,仅在javascript实际需要的文件中包含此代码bootstrap.js。Browserify会为您包括此文件。

现在,缺点是您现在将前端文件作为node_modules依赖项,并且node_modules通常不使用来检入该文件夹git。我认为这是最有争议的部分,有很多观点和解决方案。

自从我撰写此答案以来,已经过去了将近两年,并且已经进行了更新。

现在普遍接受的方法是使用一个 捆绑
喜欢的WebPack(或选择的另一个打捆)捆绑所有的资产在构建步骤。

首先,它允许您像browserify一样使用commonjs语法,因此要在您的项目中包含bootstrap js代码,您可以执行以下操作:

const bootstrap = require('bootstrap');

至于css文件,webpack有所谓的“ 加载程序
”。他们允许您在js代码中编写此代码:

require('bootstrap/dist/css/bootstrap.css');

并且CSS文件将“神奇地”包含在您的版本中。<style />当您的应用程序运行时,它们将作为标签动态添加,但是您可以配置webpack将其导出为单独的css文件。您可以在webpack的文档中阅读有关此内容的更多信息。

结论。

  1. 您应该使用捆绑器“捆绑”您的应用程序代码
  2. 您既不应该node_modules动态生成的文件也不提交给git。您可以build向npm 添加脚本,该脚本应用于在服务器上部署文件。无论如何,这可以通过不同的方式来完成,具体取决于您的首选构建过程


 类似资料:
  • 提示:npm 是 nodejs 包管理工具,可以方便的管理和使用 nodejs 包,如果你暂时没有用到,可以跳过本文。 我们提供的 Highcharts npm 包,包含了 Highcharts、Highstock、Highmaps 及所有的功能模块,通过下面的命令即可完成安装 npm install highcharts --save 1. 加载  Highcharts var Highcha

  • 当我用命令安装测试咖啡馆时,我可以在终端中使用命令“测试咖啡馆”,运行像“测试咖啡馆浏览器测试”这样的测试,但是现在我格式化了我的操作系统,只用“代码”安装了它npm安装与我的项目的packege.json,当我尝试使用testCafe命令来运行测试时,我得到消息。 现在我可以运行测试,只要我调用节点模块,如 似乎调用节点模块的“testcafe”命令别名在我使用安装它时没有创建。 对我如何修复它

  • 问题内容: 通过npm安装特定版本需要运行什么命令? 如果我运行代码 npm install -g cordova, 它将安装最新版本。由于我使用的是多台笔记本电脑和计算机,因此当我来回切换它们时,它们需要具有相同的版本。 这是我正在使用的IONIC的版本,并且是首选版本:我想避免并 更新 它们,因为如果使用最新版本,可能会遇到错误。 顺便说一句,我通过github https://github.

  • 我开始使用和。 要与数据库交互,我需要安装软件包,但安装时遇到问题。 也许有人已经遇到了类似的问题,并且知道如何解决它。 我运行命令npm install mongoose 得到一些错误

  • 我试图通过npm安装gulp,这样我就可以运行我的项目。 据我所知,我所需要做的就是从项目位置的命令行运行“NPM install Gulp”,如下所示: 然而,它似乎不起作用,因为如果我从命令行运行“gulp”,什么也不会发生。 对不起,我对npm,咕噜,大口大口等都很陌生。:(

  • 问题内容: 我正在使用node_swiz模块,而后者又使用了验证器模块。 我想对验证器模块进行更改,但是我使用npm install来安装模块/依赖项。 我可以只在node_modules内部更改验证器模块,还是在发布到heroku或下次运行npm install时重新创建node_modules依赖关系并获得最新版本? 结构如下: 谢谢您的帮助! 问题答案: 您可以直接编辑文件,但是每当npm更