为什么选择 Yeoman 及 Yeoman 的安装和学习

今天向您介绍一个我刚接触到的比较新的网络前端开发工具: Yeoman 。

什么是Yeoman?

Yeoman是Google的团队和外部贡献者团队合作开发的一个项目。通过内部三个工具(yo,grunt,bower)的协

同工作,为开发者创建一个易用的工作流。它可以让网络前端开发者快速打造一个漂亮的网络应用(web

applications) 。

Yeoman的目的不仅是要为新项目建立工作流,同时还是为了解决前端开发所面临的诸多严重问题,例如零

散的依赖关系。

Yeoman主要有三部分组成:yo、grunt、bower。这三个工具是分别独立开发的,但是需要配合使用,来实

现我们高效的工作流模式。因为Yeoman其实是三个工具的集合: YO 、 GRUNT 、 BOWER ,所以需要先解

释下这三个工具的用途。

       YO :Yeoman核心工具,项目工程依赖目录和文件生成工具,项目生产环境和编译环境生成工具

       BOWER :Web开发的包管理器,概念上类似npm,npm专注于nodeJs模块,而bower专注于CSS、

JavaScript、图像等前端相关内容的管理。需要注意的是,Bower的运行,依赖于版本控制工具git,从

github拉取以来信息。 如《Node.js介绍》所说,很多前端工具,都是由Node.js所编写的,Bower也不例

外。所以要想成功安装Yeoman,需先安装 Git。
      
       GRUNT :前端构建工具,jquery就是使用这个工具打包的。


下面将我实际安装Yeoman的过程记录如下:

我们现在就用Yeoman来建一个演示app,名字叫 My todos, 这个app的功能有添加todo、删除todo,用拖曳

功能重组你的todo,还有离线保存 todos。

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

先总览一下步骤:

步骤1:建立开发环境
步骤2:安装 Yeoman generator
步骤3: 用generator 构建你的app
步骤4: Yeoman 创建的文件目录结构一览
步骤5: 在浏览器中预览你的app
步骤6:开始写我们的 AngularJS 应用
步骤7: 用 Bower 来安装包 (packages)
步骤8: 用 Karma 和Jasmine 测试
步骤9: 使 todo 与本地存储一致
步骤10: 准备发布你的app!

让我们开始吧!

步骤1:建立开发环境

在安装Yeoman之前,你需要如下:
1. NodeJS v0.10.x+
2. npm v1.3.7+

最简单的方法是去  NodeJS website .网站,window 系统下载.msi, Mac系统下载.pkg, 安装后以上就全有了。
检查一下是否装好了(运行->cmd 进入Dos窗口写命令,这里不用写像下图中的"$",图中用$是因为用的Cygwin)(另:本文中的图有的是Yeoman官网的,有的是我机器上的):

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

安装Yeoman 工具包
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

检查一下是否都安装上了:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

装好后会显示各工具版本:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

步骤2:安装 Yeoman generator


敲入Yeoman 交互式命令:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装
用上下箭头选中 install a generator

这里我们安装AngularJS generator
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

步骤3: 用generator 构建你的app

首先建立一个项目目录来存放你的 app
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

这时我们已在C盘建立了一个文件夹:mytodo
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装
我们就默认全选module, 回车!等着瞧好了!神奇的事就要发生了!
Yeoman自动将app需要的所有文件都建造好啦!

步骤4: Yeoman 创建的文件目录结构一览


为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

这是我装后的文件目录,下图是Yeoman网上的例子里的
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

我比它多了两个文件夹.git and .temp, 不管了,没少就行。刚开始装时,在app文件夹里总少一个bower_components 文件夹。在网上查了下,应该是Git没装全。把Git装好后,重走一次前面的步骤,就会好了。所以,切记,先安装好Git,再装Yeoman。

步骤5: 在浏览器中预览你的app

在命令行键入“grunt serve”,运行一个grunt task 以创建一个基于node的本地http服务器,localhost:9000 (有的为 127.0.0.1:9000 )
     
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

然后浏览器就会出现你新做的App啦!
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装



未完待续......
接上:

若想停止服务器,按 ctrl+C

让我们来编辑一下首页文件:main.html,它在view 文件夹下。
用任何一个你喜爱的文本编辑器打开main.html, 我用的是Sublime Text 2。每当你改动保存后,你会发现浏览器会自动刷新,省事儿吧?这就叫“实时载入” (live reloading),这真的很方便,能实时看到你编辑的结果。
这个功能是Gruntfile.js 实现的。

步骤6:开始写我们的 AngularJS 应用


打开views/main.html   编辑,代码现在看起来如下:

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

如想copy 代码,请参见源代码出处:  Yeoman

再打开 scripts/controllers/main.js , 编辑如下:

'use strict';

angular.module('mytodoApp')
   .controller('MainCtrl', function ($scope) {
       $scope.todos = ['Item 1', 'Item 2', 'Item 3'];
   });

保存,我们的应用现在看起来是这样的:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

添加一个 TODO

编辑main.html, 编辑好后如下:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

保存,浏览器更新:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

如果现在点 "Add",什么也不会发生,我们下面来改变一下。
编辑main.js, 现在代码应该如下:

'use strict';

angular.module('mytodoApp')
   .controller('MainCtrl', function ($scope) {
       $scope.todos = ['Item 1', 'Item 2', 'Item 3'];
       $scope.addTodo = function () {
           $scope.todos.push($scope.todo);
           $scope.todo = '';
       };
   });

保存,在浏览器第一个表单输入框中写点什么,点“Add', 它会马上出现在你的 todo List 中!

注意:如果你连续两次输入空白内容,或连续两次输入相同内容,应用便会自动终止!

删除一个TODO


编辑main.html, 让我们在每个输入框后面添加一个button, 代码变成如下:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

保存!看看你的浏览器,哇,你的 app 看起来好棒啊!

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装
接下来我们编辑main.js,以便删除功能好用, 编好后代码是这样了:

'use strict';

angular.module('mytodoApp')
   .controller('MainCtrl', function ($scope) {
       $scope.todos = ['Item 1', 'Item 2', 'Item 3'];
       $scope.addTodo = function () {
           $scope.todos.push($scope.todo);
           $scope.todo = '';
       };
       $scope.removeTodo = function (index) {
           $scope.todos.splice(index, 1);
       };
   });

保存!回到浏览器,现在你可以按 X 去删除项目了,太神奇啦!
你可能注意到,我们所做的修改并不能被保存,每当我们刷新页面时,就回到了初始状态,没关系,我们会在第九步修正这个问题,不过我们先得到下一步学学如何用bower 安装相应的packages。

步骤7: 用Bower 来安装包(packages)

让我们加上顺序,使我们的 list 可以排序或分类,要实现这个,得用bower 安装 AngularUI Sortable module, 这个是Angular 的一个指令集。

我们可以用下面的命令来看看我们已经装了什么包
bower list

你应该看到你已经装了angular-cookies, angular-resources, angular-route, 还有其它。

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装


用以下命令来确认我们要找的包是否存在:

bower search angular-ui-sortable
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

下面我们安装它,一并安装jQuery UI
bower install --save angular-ui-sortable
bower install --save jquery-ui

其中 --save 选项帮助你更新 bower.jason,省却你以后手动更新的麻烦。

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

或者用一个命令行安装:
bower install --save angular-ui-sortable jquery-ui

据我的机器运行来看,现在不用俩一起写,我只用了
bower install --save angular-ui-sortable
这一个命令就同时把jquery-ui也装上了,应该是bower改进了,省得我们麻烦了,呵呵^^
确认安装

我们来看看  bower_components  文件夹以确保安装正确
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

这些新安装的包必须被列入index.html, 你可以手动将上述两项填入index.html, 但是Yeoman 将会为你自动填加。先使用ctrl+c 停止目前的命令行,再重启服务器,即再运行grunt serve。你将会看到 script 部分已填加上了 jquery-ui/ui/jquery-ui.js 和 angular-ui-sortable/sortable.js
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

同时在  scripts/app.js  文件里加上  ui.sortable 代码,如下图:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

最后,我们该编辑main.html了,加上相应的代码后,整个 todo list部分代码如下:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

回到浏览器,现在我们可以随意拖动排序各项目啦。

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

太酷了!这么简单就能做出这么棒的应用?简直让人不敢相信!

步骤8: 用 Karma 和Jasmine 测试

Karma是JavaScript 的测试执行器(JavaScript test runner), Jasmine 是 Angular的一个测试框架。我们在之前已经运行过 yo angular, 一个叫 test 的文件夹已经被部署在目录 mytodo 中,还产生了一个 karma.conf  文件及Karma需要的 node 模块,我们马上就可以用 Jasmine来测试了,不过我们得先看看怎么来运行测试。

运行单元测试
在命令窗口输入ctrl + C 停止grunt server。然后输入 grunt test, 你会看到浏览器打开又关闭,并有警告,不过没关系,我们来fix一下。

打开文件 karma.conf.js  并用以下代码替换  files  array :
  files: [
   'app/bower_components/jquery/jquery.js',
   'app/bower_components/jquery-ui/ui/jquery-ui.js',
   'app/bower_components/angular/angular.js',
   'app/bower_components/angular-ui-sortable/sortable.js',
   'app/bower_components/angular-mocks/angular-mocks.js',
   'app/bower_components/angular-local-storage/angular-local-storage.js',
   'app/scripts*.js',
   'test/mock*.js',
   'test/spec*.js',
   'app/bower_components/angular-resource/angular-resource.js',
   'app/bower_components/angular-cookies/angular-cookies.js',
   'app/bower_components/angular-sanitize/angular-sanitize.js',
   'app/bower_components/angular-route/angular-route.js'
],

打开 test/spec/controllers/main.js . 删掉下面语句:

it('should attach a list of awesomeThings to the scope', function () {
   expect(scope.awesomeThings.length).toBe(3);
});
替换成:
it('should have no items to start', function () {
       expect(scope.todos.length).toBe(0);
});
再次输入命令:
grunt test

到这步,我的机器并没有像Yeoman网站教程上那样出现相应的信息,而是提示:
Warning: No provider for "framework:jasmine"! (Resolving: framework:jasmine)use--force to c

到google上search了一下,找到了觖决办法:

输入命令:

npm install karma-jasmine --save-dev

这回再输入命令:
grunt test
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

又提示Can not load Chrome, it is not registered

解决办法:
用下面的命令填加 karma-chrome-launcher 到package.json文件中
npm install karma-chrome-launcher --save-dev

我机器上仍有错,先略过,按Yeoman 网站上的教程继续:

再运行grunt test, 这回应该pass

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

下面再多加些test:

你的 MainCtrl test script (test/spec/controllers/main.js)应该看起来是这样的:

'use strict';

describe('Controller: MainCtrl', function () {

   // load the controller's module
   beforeEach(module('mytodoApp'));

   var MainCtrl,
       scope;

   // Initialize the controller and a mock scope
   beforeEach(inject(function ($controller, $rootScope) {
       scope = $rootScope.$new();
       MainCtrl = $controller('MainCtrl', {
           $scope: scope
       });
   }));

   it('should have no items to start', function () {
       expect(scope.todos.length).toBe(0);
   });

   it('should add items to the list', function () {
       scope.todo = 'Test 1';
       scope.addTodo();
       expect(scope.todos.length).toBe(1);
   });

   it('should add items to the list', function () {
       scope.todo = 'Test 1';
       scope.addTodo();
       scope.removeTodo(0);
       expect(scope.todos.length).toBe(0);
   });

});

再次运行grunt test :
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

你会看到三个测试项目都通过了,太棒啦!
当你的应用程序越来越庞大,以及有更多的开发人员加入时,进行单元测试,会使得找bug变得容易起来。而Yeoman 的自动搭建功能则会助你一臂之力。

步骤9: 使 todo 与本地存储一致

安装bower package
我们需要另一个Angular 的module   "angular-local-storage" , 使用下面的命令
bower install --save angular-local-storage

为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

添加local storage
ctrl + C 退出当前命令,运行 grunt serve, 这时你会发现你的 index.html 文件底部已加了一句:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

编辑 mytodoApp 应用模块 (scripts/app.js) 使它包含 LocalStorageModule ,最后代码如下:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

还要编辑main.js, 代码最终如下:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装

这时你在浏览器里看到你的应用变成这样:
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装
让我们填加几项:为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装
现在我们刷新一下浏览器,后添加的几项仍然存在,太好啦!成功啦!

步骤10: 准备发布你的 app!

我们来做一下发布前的优化工作:只要运行命令:
grunt
为什么选择 <wbr>Yeoman <wbr>及 <wbr>Yeoman <wbr>的安装 
你的准备好发布的文件们现在就在dist文件夹里!你可以用 FTP 上传到你的服务器发布。

恭喜你!我们的演示 app 终于完工啦!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。
基于GPT-SoVITS的视频剪辑快捷配音工具 GPT, 通常指的是“Generative Pre-trained Transformer”(生成式预训练转换器),是一个在自然语言处理(NLP)领域非常流行的深度学习模型架构。GPT模型由OpenAI公司开发,并在多个NLP任务上取得了显著的性能提升。 GPT模型的核心是一个多层Transformer解码器结构,它通过在海量的文本数据上进行预训练来学习语言的规律。这种预训练方式使得GPT模型能够捕捉到丰富的上下文信息,并生成流畅、自然的文本。 GPT模型的训练过程可以分为两个阶段: 预训练阶段:在这个阶段,模型会接触到大量的文本数据,并通过无监督学习的方式学习语言的结构和规律。具体来说,模型会尝试预测文本序列中的下一个词或短语,从而学习到语言的语法、语义和上下文信息。 微调阶段(也称为下游任务训练):在预训练完成后,模型会被应用到具体的NLP任务中,如文本分类、机器翻译、问答系统等。在这个阶段,模型会使用有标签的数据进行微调,以适应特定任务的需求。通过微调,模型能够学习到与任务相关的特定知识,并进一步提高在该任务上的性能。 GPT模型的优势在于其强大的生成能力和对上下文信息的捕捉能力。这使得GPT模型在自然语言生成、文本摘要、对话系统等领域具有广泛的应用前景。同时,GPT模型也面临一些挑战,如计算资源消耗大、训练时间长等问题。为了解决这些问题,研究人员不断提出新的优化方法和扩展模型架构,如GPT-2、GPT-3等,以进一步提高模型的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值