热门标签 | 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。


推荐阅读
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
  • maven update 自动修改dynamic web module_Angular 8.0 正式发布! 支持更多 Web 标准
    作者|StephenFluin译者|王强Angular8.0.0版本正式发布了!8.0是重大版本升级,整个平台,包括框架、AngularM ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • ASP.NET MVC 小牛之旅3:Routing——网址路由
    网址路由(Routing)在ASP.NETMVC中有两个主要用途,一个用途是匹配通过浏览器传来的HTTP请求,另一个用途则是响应适当的网址给浏览器。3.1匹配通过浏览器传来的HTT ... [详细]
  • 业务:Payments&Risk大数据/AI/数据可视化时间要求:至少实习6个月,每周5天,入职时间4-5月 ... [详细]
  • 使用PhpStorm或WebStorm作为electron IDE
    最近在研究electron,考虑到以前一直用PhpStorm做开发,而且electron就是基于nodejs的,因此很自然的想到要继续用PhpStorm做IDE。开发打开RunDe ... [详细]
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社区 版权所有