Google Web开发最佳实践(二)

简介:


本指南逐步引导你使用 Web 新手开发包创建新站点,帮助你充分利用 Web 新手开发包提供的工具。

1.开发环境配置

本人环境为win7x64。需要安装以下环境。

  • 安装NodeJS(同时会安装NPM);
  • 安装Ruby(需要大于1.8.7版本),然后安装sass:gem install sass(楼主安装了好几次都提示连接错误,最终还是装上了...)。
下载新手开发包: https://developers.google.com/web/starter-kit/,解压进入该目录,执行:
npm install
结果显示 Error: ENOENT, stat 'C:\Users\Administrator\AppData\Roaming\npm 解决方法:在C:\Users\Administrator\AppData\Roaming\ 在这个目录建立npm文件夹就行了。然后再执行还是抱一堆错,貌似是git问题。于是在电脑上又装了git并配置了git的环境变量,最后终于install 成功了。
然后官网来了一句gulp serve命令,又报错,原来gulp是JS的构建工具,需要自个安装的。
于是执行:
npm install -g gulp
然后再执行:
npm serve
如果在浏览器能访问http://localhost:3000说明配置成功了。




2.开发阶段

gulp.js 是一种基于流的,代码优于配置的新一代构建工具。Gulp 和 Grunt 类似。但相比于 Grunt 的频繁的 IO 操作,Gulp 的流操作,能更快地完成构建。这里用到的gulp命令主要有三个:gulp serve,gulp,gulp serve:dist。

2.1 gulp serve 启动本地服务

这个任务启动了一个本地 HTTP 服务器,让你可以在浏览器中查看你的站点,但幕后其实有一些其他工具在运作:

实时刷新

传统的刷新过程是,编辑器中修改,切换到浏览器,按 CTRL-R,等待页面重载,实时刷新则消去这一步。
有了实时刷新,你可以一边在编辑器中修改,一边看它们在打开的浏览器中即时生效。

跨设备测试

Browser Sync 帮你跨设备测试站点。任何的滚动,轻拍,或按键都将同步给所有连接着的浏览器。本人在iPad和PC上同时打开测试网页,发现对页面的响应是同步的,但是对于浏览器的响应并不同步。比如点击iPad上的浏览器的后退按钮,PC端并未同步,所以这里的同步是指页面响应同步。

自动化添加前缀

在面向诸多浏览器时,你需要使用浏览器厂商前缀来确保你能够使用它们的特性。Web 新手开发包为你自动化所有的添加前缀的工作。构建过程会让 autoprefixer 过一遍 CSS,自动添加浏览器厂商前缀。

检查 JavaScript

JSHint 是一个扫描 JavaScript 代码的工具,用于检查你 JavaScript 逻辑中的可能问题,而且能强化编码的最佳实践。
在你构建项目时,或是你运行 gulp server 然后对一个 JavaScript 文件做了修改,JSHint 都会运行。

编译你的 Sass

在你运行 serve 命令后,项目中任何针对 Sass 文件的修改都会被编译成 CSS 并且添加浏览器厂商前缀,随后页面由实时刷新功能来重载。
给不知道 Sass 的介绍一下,Sass 项目把自身描述为一种“CSS 扩展语言”。基本上它就是 CSS 加一些额外特性。比如,它添加了变量和函数的支持,可以帮你模块化、复用 CSS,更好地组织 CSS。

2.2 gulp 构建网站的生产版本

只要 gulp 命令,你就可以给你的网站构建一个可立即部署的版本。这个命令运行一些我们前面已经见过的任务,以及其它致力于让你的网站加载更快、更高效的任务。
构建生产版本执行的主要任务有:

构建样式

构建首先会先编译项目中的 Sass。Sass 编译完成后,Autoprefixer 过一遍所有的 CSS。

检查 JavaScript 中的问题

第二步运行 JSHint 检查 JavaScript。

构建 HTML 页面

下一步就是检查你的 HTML 文件,查找构建块,合并、压缩 JavaScript。处理完 JavaScript 后,构建会压缩 HTML 页面。
通过移除并非真正需要的注释或空格符,配合其它技术,压缩减小了最终 JavaScript 文件的字符数。这就减小了最终的文件大小,加快站点加载时间。
合并意味着把多个文件的内容并成一个。之所以这样做是因为浏览器可以因此只发送一个请求给服务器,而不是多个,对你的用户来说,这会更快。
关于哪些 JavaScript 文件需要我们合并、压缩到一起,构建块中都有。且让我们看一个构建块示例:
<!-- build:js scripts/main.min.js -->
<script src="scripts/example-1.js"></script>
<script src="scripts/example-2.js"></script>
<!-- endbuild -->

如你所见,一个构建块不过是一个格式特殊的注释,第一行表示该构建块是针对 JavaScript 的,最终文件的名称及路径应该是 scripts/main.min.js。最后一行关闭了块。两行之间则是我们要压缩、合并的 JavaScript 文件,在这个例子中是指 example-1.js 和 example-2.js。

优化图片资源

JPEGs 和 PNGs 格式的图片的元数据被剔除;对渲染图片来说这些是多余的。元数据包括了诸如拍照所用的相机等信息。
至于 SVGs,构建会移除所有不需要的属性或空白,以及存在的注释。

拷贝字体

这个简单工作就是把我们的字体从 app 目录拷贝到最终的构建目录里。

拷贝根目录下所有文件

如果项目根目录下存在任何文件,则构建也会将它们拷入最终的构建目录中。

2.3 测试你的网站

在你推送任何东西到生产环境前,你需要确保一切如你所预料的一样正常工作。gulp serve:dist 命令构建出一个网站的生产版本,然后启动一个服务器,再为你打开一个浏览器。它没有实时刷新或 Browser Sync,但在部署你的站点前,它是个可靠的测试站点的方法。

3.使用样式指南

Web 新手包附带一个样式指南,能够快速、便捷地查看你站点使用的所有样式。从组件的角度思考你的 CSS,然后相应地拆分样式与类,你就得到清晰结构的样式,也能看到所有组件放在一起是什么样子。

查看样式指南 HTML

要查看添加页面元素所需的 HTML 和类名,点击样式指南顶部的 ’Toggle Code Snippets’ 按钮。一旦启用,你会在每个元素下看到一段带有适当标记的代码示例,你可以拷贝、粘贴到你的页面。
Toggle Code Snippet 按钮的截图

扩展样式指南

不管你什么时候创建一个会在网站的许多地方上使用的新元素,请考虑添加该元素到你的样式指南中。

添加一个新的组件

打开 app/styleguide/index.html,在最后一个元素后面给你的新元素添加 HTML。
在 app/styles/components/ 中,给你的组件创建一个名称合适的新 Sass 文件。
打开 app/styles/components.scss,在文件底部,以如下方式导入新 Sass 文件。
 // New Styles
 @import "_components/_<My Component Name>";

别忘了在文件名中添加下划线;它指明该文件的目的是用于合并到其他 Sass 文件。
访问 http://localhost:/styleguide/,在本地测试它的外观情况,确保构建成功。
最后,在你的页面中使用新组件。

示范如何添加组件

下面是一个简单的添加组件到样式指南中的步骤。
首先我们在 app/styleguide/index.html 底部添加 <footer> 标签,给它一个类名 Footer。
接着创建我们的 Sass 文件。这里我们会创建 app/styles/components/_footer.scss 文件然后添加一些非常基本的样式以便开始。
 .Footer {
   height: 180px;
   background-color: #404040;
 }

在 components.css 底部,添加我们的 footer sass 文件。
 // New Styles
 @import "_components/_footer";

现在,运行 gulp serve 并检查样式指南,我们应该能看到赏心悦目的 footer。
添加多一点样式:
 .Footer {
   height: 180px;


   color: white;
   background-color: #404040;


   a {
       text-decoration: none;
       color: white;
   }
 }

让我们在 styleguide.html 中添加一个标题,这样它看起来跟其他样式指南元素就很像,也许还可以在页面顶部添加一个链接。
 // Footer Link at top of styleguide.html
 <li class="summary-header__anchors-item">
   <a href="#footer">Footer</a>
 </li>


 .......


 // Footer Title
 <div class="container">
   <a name="footer"></a>
     <h2 class="subsection-title">
       <strong class="subsection-number">#21</strong> Footer
     </h2>
   </div>


   <!-- Input Component HTML Here -->
 </div>

最后,再充实下 HTML。
 <footer class="Footer">
   <div class="container">
     <p>
       <a href="#">
         <i class="icon icon-chevron-up"></i> Back to top
       </a>
     </p>
   </div>
 </footer>
最后结果如下:


你现在可以在引入 components.scss 文件的任意页面中使用 footer 组件 (比如 app/styles/main.scss 文件)。
/*
 * Visual Style Guide styles
 * Remove if you prefer to use a CSS library, like Bootstrap
 */
@import "components/components";


相关文章
|
3月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
325 4
|
7月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
7月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
7月前
|
JSON 开发框架 自然语言处理
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
本文主要介绍了应用开发中的三大核心内容:生命周期管理、资源限定与访问以及多语言支持。在生命周期部分,详细说明了应用和页面的生命周期函数及其触发时机,帮助开发者更好地掌控应用状态变化。资源限定与访问章节,则聚焦于资源限定词的定义、命名规则及匹配逻辑,并阐述了如何通过 `$r` 引用 JS 模块内的资源。最后,多语言支持部分讲解了如何通过 JSON 文件定义多语言资源,使用 `$t` 和 `$tc` 方法实现简单格式化与单复数格式化,为全球化应用提供便利。
301 104
|
7月前
|
JavaScript 前端开发 API
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)
本文介绍了HarmonyOS应用开发中的HML、CSS和JS语法。HML作为标记语言,支持数据绑定、事件处理、列表渲染等功能;CSS用于样式定义,涵盖尺寸单位、样式导入、选择器及伪类等特性;JS实现业务逻辑,包括ES6语法支持、对象属性、数据方法及事件处理。通过具体代码示例,详细解析了页面构建与交互的实现方式,为开发者提供全面的技术指导。
303 104
|
7月前
|
开发框架 编解码 JavaScript
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(一)
该文档详细介绍了一个兼容JS的类Web开发范式的方舟开发框架,涵盖概述、文件组织、js标签配置及app.js等内容。框架采用HML、CSS、JavaScript三段式开发方式,支持单向数据绑定,适合中小型应用开发。文件组织部分说明了目录结构、访问规则和媒体文件格式;js标签配置包括实例名称、页面路由和窗口样式信息;app.js则描述了应用生命周期与对象管理。整体内容旨在帮助开发者快速构建基于方舟框架的应用程序。
311 102
|
10月前
|
关系型数据库 MySQL 数据库
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
TIS 是一款基于Web-UI的开源大数据集成工具,通过与人大金仓Kingbase的深度整合,提供高效、灵活的实时数据集成方案。它支持增量数据监听和实时写入,兼容MySQL、PostgreSQL和Oracle模式,无需编写复杂脚本,操作简单直观,特别适合非专业开发人员使用。TIS率先实现了Kingbase CDC连接器的整合,成为业界首个开箱即用的Kingbase CDC数据同步解决方案,助力企业数字化转型。
2314 5
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
|
8月前
|
Web App开发 前端开发 JavaScript
鸿蒙5开发宝藏案例分享---Web适配一多开发实践
这是一份实用的鸿蒙Web多设备适配开发指南,针对开发者在不同屏幕尺寸下的布局难题提供了解决方案。文章通过三大法宝(相对单位、媒体查询和窗口监听)详细介绍如何实现智能适配,并提供了多个实战案例,如宫格布局、对话框变形和自适应轮播图等。此外,还分享了调试技巧及工具推荐,帮助开发者快速上手并优化性能。最后鼓励读者实践探索,并提示更多官方资源等待发现。

推荐镜像

更多