热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

九、网站开发工具

九、网站开发工具多年来,开发网站的工具已经成熟。我们从使用记事本这样的简单编辑器发展到了 WebStorm 这样的全面开发环境。

九、网站开发工具

多年来,开发网站的工具已经成熟。我们从使用记事本这样的简单编辑器发展到了 WebStorm 这样的全面开发环境。我们也有像 JQuery 这样的库。我们可以使用 Handlebars 作为模板引擎,AngularJS 作为完整的 MVC 框架。还有单元测试框架和版本控制系统来帮助我们更好更快地完成工作。那么现在我们有了所有这些可用的东西,我们如何把它们组织起来呢?

为了回答这个问题,我们将把它分成两部分。首先,我们将看看创建网站的工具,然后看看跟踪网站变化的工具。为了创建一个站点,我们将探索 Yeoman、Grunt 、Bower 和节点包管理器(NPM) 。为了跟踪变化,我们将使用 Git 。

所有这些工具都可以协同工作,所以让我们来分析一下每个工具的作用:


  • Bower 是一个包管理系统。它的目的是确保您的项目所依赖的所有客户端代码都已经下载并安装。地点:http://bower.io/

  • Grunt 就是所谓的构建工具。它允许您自动化许多类型的任务,包括单元测试、林挺(检查 Javascript 错误),以及将您的代码添加到版本控制中。它还可以用于将您的代码部署到服务器。地点:http://gruntjs.com/

  • 约曼就是所谓的脚手架工具。它创建了创建项目的基本版本所需的文件和文件夹。然后,它使用 Bower 收集项目所依赖的所有代码。最后,它使用一个构建工具(比如 Grunt)来自动化任务。这是通过使用发电机来实现的。地点:http://yeoman.io/

  • 节点包管理器(NPM) ,顾名思义,管理包。这些包运行在 Node.js 之上。随着 Node 变得越来越流行,其中一些包是为客户端开发而开发的,而不仅仅是服务器端,在服务器端使用 Node.js。地点:https://nodejs.org/

  • Git是一个版本控制系统。如果你听说过 Subversion 或 Perforce 这样的工具,Git 也是类似的。它会跟踪你处理的所有文件,并告诉你文件之间的区别。地点:http://git-scm.com/

搭建你的项目

计算机非常擅长做人们不想做的任务,它们可以一遍又一遍地做,而不会感到厌烦。没有人希望每次创建项目时都为图像、CSS 和 Javascript 文件创建文件夹。有很多我们认为理所当然的小任务现在可以自动化。启动一个项目,只需一个命令就可以完成所有的文件夹,这不是很好吗?

这就是脚手架背后的理念。因为大多数网站都是以同样的方式组织的,所以没有必要手工设计结构。Yeoman 可以让你搭建任何你想要的网络项目。利用来自社区的最佳实践,Yeoman 使用发电机来快速方便地建立我们的项目。

生成器实际上是任何人都可以制作的模板。有一些团队赞助项目来创建“官方”发电机,但是如果那个不做你想要的事情,其他人可能已经做了一个。发电机也是开源的,所以你可以看看一个人的引擎盖下,看看它是如何制造的。为了使用 Yeoman,我们首先需要安装 Node.js。

NPM 是一切的基础

节点包管理器(NPM )让您能够管理应用中的依赖关系。这意味着,如果你的项目需要代码(比如说 JQuery),NPM 可以很容易地添加到你的项目中。这也是我们将要安装的大多数工具在幕后运行的内容。NPM 是 Node.js 的一部分,node . js 是一个开源的跨平台环境,用于使用 Javascript 制作服务器端应用。尽管我们不打算在这里创建 Node.js 项目,但我们确实需要安装node。有几种方法可以做到这一点;对于我们的例子,我们将尽量使它简单。

当你去nodejs.org的时候,网站会算出你用的是什么操作系统。单击安装按钮下载并运行安装程序。

安装完成后,您可以进入终端模式(Mac、Linux)或命令提示符(Windows)并输入node –version。您应该会看到当前版本的node显示在窗口中。

安装好之后,现在我们可以得到我们需要的一切。安装约曼时,键入npm install –g yo,对于咕噜型npm install –g grunt-cli,对于鲍尔型npm install –g bower。使用-g意味着安装将在全球范围内进行;创建新项目时,可以在任何文件夹中运行这些实用程序。cli代表命令行界面。在我们的练习中,我们将花时间在命令行上。习惯了是好事,值得努力。现在我们可以安装一个发电机,并开始寻找其他工具。

发电机

正如我们之前谈到的,生成器实际上是描述站点结构的模板。您可以通过向 Yeoman 传递不同的参数来调整这些模板。在Yeoman.io你可以找到一个生成器列表和 GitHub 库的链接。存储库有关于如何使用生成器的所有说明。例如,如果您想使用 AngularJS 创建一个站点,您可以输入

npm install –g generator-angular

这将安装 AngularJS 发生器。如果您想要一个 AngularJS 站点,并且还想添加 Karma(一个 Javascript 测试运行器)来帮助运行您的单元测试,安装应该是这样的:

npm install –g generator-angular generator-karma

现在您已经安装了一个生成器,通过在命令行键入yo,您可以查看已安装的生成器列表并更新它们。从这里你也可以安装新的发电机。

此时,您应该为您的项目创建一个文件夹,当您在该文件夹中时,下一个命令应该是

yo angular

约曼会开始问你关于你的应用的问题。比如它会问你是否愿意使用 Sass,如图图 9-1 所示。

9781430263913_Fig09-01.jpg

图 9-1 。约曼建立了一个 AngularJS 网站

您将被问及其他一些关于您希望如何设置项目的问题。一旦完成,Bower 将从 GitHub 获取您需要的所有库的最新版本,并为您一起搭建您的项目。安装好所有东西后,输入以下命令来查看站点的运行情况:

grunt serve

这一次我们使用 Grunt 在你当前的文件夹中创建一个本地 web 服务器,并提供主页服务(图 9-2 )。

9781430263913_Fig09-02.jpg

图 9-2 。约曼在本地服务器上运行 AngularJS

这就是你需要做的。你现在已经有了一个可以运行的站点。这是将我们的代码置于版本控制中的好时机。

版本控制

变化是不断的。我们的文件被一遍又一遍地更新。当我们工作时,东西有时会坏掉。在某些情况下,简单的撤销就可以了。在其他时候,我们可能需要恢复到以前的状态,特别是在与团队合作并且有许多变化的时候。一个改变可能会破坏整个网站,并且很难找到问题所在。这就是版本控制非常有用的地方。

Git 是我们将要使用的版本控制系统。它很受欢迎,也有 GUI 客户端。正如我们对 Node.js 示例所做的那样,我们将采用最快的方式来安装它。为此,请转到git-scm.com下载并安装 Git。

安装完成后,您可以使用命令行对其进行配置。要添加您的身份,请键入git config –global user.name "your name" and git config –global user.email your@email.com

现在您已经安装并配置了 Git,我们将快速添加文件,然后在本地提交它们。确保您位于项目文件夹中。在该文件夹中键入git init。这样就创建了一个. Git 文件夹,其中包含了项目的所有信息。此文件夹通常是不可见的,因此如果您想看到它,可能需要更改操作系统中的一些设置。接下来,让我们检查提交的状态。键入git status,您可以看到在这一点上,没有文件被添加到版本控制中(图 9-3 )。

9781430263913_Fig09-03.jpg

图 9-3 。文件尚未添加到 Git

添加文件、更新和首次提交

接下来我们添加文件,这样 Git 就可以跟踪它们。向存储库添加文件就像输入git add file name/folder一样简单。Git 将开始跟踪文件。在图 9-4 中,我们通过输入git add app/来添加应用文件夹。您可以再次检查状态并查看结果。

9781430263913_Fig09-04.jpg

图 9-4 。应用文件夹已经被添加到 Git

继续添加文件,尤其是bower.jsonpackage.json。这些文件跟踪您的依赖模块以及这些模块的版本。Gruntfile.js会有你能运行的所有任务。我们之前通过输入grunt serve运行了一个任务。那个任务为我们运行一个本地服务器。

作为一个最佳实践,node_modulesbower_components文件夹不会被添加到版本控制中。您可以稍后使用npm installbower install命令重新安装它们。

您不想添加到 Git 的文件在.gitignore文件中定义。您可以修改该文件,以包含文件类型或任何您希望 Git 忽略的内容。

我们讨论了文件如何随时间变化,所以你可能会问 Git 是如何知道文件何时发生变化的。首先,需要将文件添加到存储库中。我们用git add命令做到了。然后,当发生变化时,您可以再次请求状态。这将列出自上次添加以来已更改的所有文件。请记住,在进行更改之前,您需要 Git 了解该文件,这样就可以随时跟踪更改。在图 9-5 的中,我们可以改变README.md文件来说明我们的观点。

9781430263913_Fig09-05.jpg

图 9-5 。Git 可以看到文件何时被修改

文件更改后,您可以像以前一样再次添加它。下次您检查状态时,它将回到跟踪项目列表中。

现在 Git 已经跟踪了所有文件,可以提交所有文件了。将提交视为项目当前状态的快照(图 9-6 )。如果项目发生了任何事情,您总是可以恢复到上一个状态。

9781430263913_Fig09-06.jpg

图 9-6 。提交并显示在日志中的文件

要提交,请键入git commit –m "notes about the commit"–m标志代表消息。或者,您可以使用文本编辑器来制作您的消息。如果你想查看信息的历史,你可以输入git log

我们现在有一种方法来跟踪本地机器上的变化。如果你是一个孤独的开发者,这将会很好。

但是,如果您想要共享代码或与团队合作,您将需要添加一个服务器端组件。最流行的两个选项是 GitHub ( https://github.com/)和 bit bucket(https://bitbucket.org/)T2。使用这两个选项中的任何一个,除了本地机器上的文件之外,您还可以拥有一个远程存储库。

摘要

我们希望在读完这一章后,你会看到大量的资源可供你使用。使用 Yeoman generators 快速组合一个网站的能力,将为你在组合新项目时节省时间和精力。Yeoman 也可以作为一个学习工具来理解不同框架是如何工作的。

我们只是给出了 Git 的一个基本概述。这个主题本身就可以成为一本书。幸运的是,有斯科特·沙孔和本·施特劳布的 Pro Git 。在 Git 主页上也可以找到它的链接(http://git-scm.com/ ))。它是在线的或者是一个数字文件。现在我们可以很快地把一个网站放在一起,让我们看看第 10 章中一个非常流行的框架 AngularJS。


推荐阅读
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 根据不同环境需求,利用 Vue CLI 的 `npm run build` 命令对项目进行定制化打包,如测试、预发布和生产环境。通过配置 `process.env` 变量,实现不同环境下接口和服务的动态切换,确保应用在各阶段都能高效运行和调试。 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 在Kubernetes上部署多个Mitmproxy代理服务器以实现高效流量管理 ... [详细]
  • 深入探索Node.js新框架:Nest.js第六篇
    在本文中,我们将深入探讨Node.js的新框架Nest.js,并通过一个完整的示例来展示其强大功能。我们将使用多个装饰器创建一个基本控制器,该控制器提供了多种方法来访问和操作内部数据,涵盖了常见的CRUD操作。此外,我们还将详细介绍Nest.js的核心概念和最佳实践,帮助读者更好地理解和应用这一现代框架。 ... [详细]
  • Node.js 教程第五讲:深入解析 EventEmitter(事件监听与发射机制)
    本文将深入探讨 Node.js 中的 EventEmitter 模块,详细介绍其在事件监听与发射机制中的应用。内容涵盖事件驱动的基本概念、如何在 Node.js 中注册和触发自定义事件,以及 EventEmitter 的核心 API 和使用方法。通过本教程,读者将能够全面理解并熟练运用 EventEmitter 进行高效的事件处理。 ... [详细]
  • 本文详细解析了JSONP(JSON with Padding)的跨域机制及其工作原理。JSONP是一种通过动态创建``标签来实现跨域请求的技术,其核心在于利用了浏览器对``标签的宽松同源策略。文章不仅介绍了JSONP的产生背景,还深入探讨了其具体实现过程,包括如何构造请求、服务器端如何响应以及客户端如何处理返回的数据。此外,还分析了JSONP的优势和局限性,帮助读者全面理解这一技术在现代Web开发中的应用。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • 需求:在指定的DIV区域内点击时,需展示该区域内的附加操作面板;而在区域外点击时,则应自动隐藏该附加操作面板。通过精准的事件监听与处理,确保用户交互体验的流畅性和直观性。 ... [详细]
  • Django框架进阶教程:掌握Ajax请求的基础知识与应用技巧
    本教程深入探讨了Django框架中Ajax请求的核心概念与实用技巧,帮助开发者掌握异步数据交互的方法,提升Web应用的响应速度和用户体验。通过实例解析,详细介绍了如何在Django项目中高效实现Ajax请求,涵盖从基础配置到复杂场景的应用。 ... [详细]
  • 随着越来越多的应用程序采用JSON格式作为响应数据,基于Spring Framework构建的服务端应用也广泛采用了这一实践。本文将详细介绍如何在Spring 4.x版本的MVC框架中配置和实现HTTP请求返回JSON数据流,涵盖相关配置、依赖管理和代码示例,帮助开发者高效地实现这一功能。 ... [详细]
author-avatar
zc163com
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有