实时搜索: grunt是什么

grunt是什么

782条评论 2924人喜欢 2892次阅读 873人点赞
...

angularjs grunt是必须的吗: 1、ng-app加上
2、把angularjs引入就可以了
具体到 这里看

<!doctype html>
<html ng-app> //重点1
<head>
<meta charset="UTF-8">
<title>angularjs</title>
</head>
<body>
<div>
<label>Name:</label>
<input type="text" ng-model="yourName"placeholder="Enter a name here">
<hr>
<h1>Hello {{yourName}}!</h1>
</div>
<script src=""></script>//重点2
</body>
</html>

用grunt构建js有什么好处: 一个简单的项目,配置好工具后,还是能做到很快速的开发、发布和管理的。
建议依旧是:
不管线上服务器是Git、SVN还是FTP,线下都要做好文件管理和版本管理:哪怕是线上服务只有FTP,一样可以通过变通的方法实现VC(Version Control)。
有一个测试服务器:方便调试:前段时间与公司珠海分公司的同事对接一个静态页项目,每天都有图片、文案的变更需求,加上要做兼容性测试,就直接把项目放到了测试服务器上,先发地址给对接的同事检查再上最终服务器。
规范化:不管是文档、文件命名,都要做到合理、语义化,便于其他人理解,方便后续接手的同事进行跟进和review。

mvc razor怎样引入样式表: mvc razor怎样引入样式表
可以通过以下2个命令,查看 node.js 和 npm 的版本号:
node -v
npm -v
安装Grunt:
如果你之前安装过老的0.3版本,请先卸载:
npm uninstall -g grunt
安装Grunt命令行(CLI):
npm install -g grunt-cli
注1:-g代表全局安装,Grunt有二个版本:服务器端版本(grunt)和客户端版本(grunt-cli)。
注2:安装grunt-cli并不等于安装了grunt!grunt CLI的任务很简单:调用与Gruntfile在同一目录中的grunt。这样带来的好处是,允许你在同一个系统上同时安装多个版本的grunt。而grunt使用模块结构,除了安装命令行界面以外,还要根据需要安装相应的模块。这些模块应该采用局部安装,因为不同项目可能需要同一个模块的不同版本。
上述命令执行完后,grunt 命令就被加入到你的系统路径中了,以后就可以在任何目录下执行此命令了。

求助node-inspector全局模式安装后依然不能正常使用:   npm的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如   npm install grunt # 本地安装   npm install -g grunt-cli # 全局安装   这两种安装方式有什么区别呢?从npm官方文档的说明来看,主要区别在于(后面通过具体的例子来说明):   本地安装   1. 将安装包放在 ./node_modules 下(运行npm时所在的目录)   2. 可以通过 require() 来引入本地安装的包   全局安装   1. 将安装包放在 /usr/local 下   2. 可以直接在命令行里使用   本地安装   1、将安装包放在 ./node_modules 下(运行npm时所在的目录)   比如运行下面命令   npm install grunt --save-dev   那么,就会在当前目录下发现一个node_modules目录,进去后能够看到grunt这个包   casperchenMacBookPro:testUsemin casperchen$ ll   total 200   drwxr-xr-x 16 casperchen staff 544B 12 14 23:17 node_modules   进入node_modules   casperchenMacBookPro:node_modules casperchen$ ll   total 0   drwxr-xr-x 16 casperchen staff 544B 12 5 00:49 grunt   2、可以通过 require() 来引入本地安装的包   直接来个例子,我们在项目根目录下创建test.js,里面的内容很简单   var grunt = require('grunt');grunt.log.writeln('hello grunt');   然后在控制台运行test.js   node test.js   然后就会看到如下输出   casperchenMacBookPro:testUsemin casperchen$ node test.js   hello grunt   全局安装   1、将安装包放在 /usr/local 下   运行如下命令   npm install -g grunt-cli   然后进入/usr/local/bin目录,就会发现grunt-cli已经被放置在下面了   casperchenMacBookPro:bin casperchen$ pwd   /usr/local/bin   casperchenMacBookPro:bin casperchen$ ll grunt   lrwxr-xr-x 1 root admin 39B 8 18 21:43 grunt -> ../lib/node_modules/grunt-cli/bin/grunt   可见,全局模块的真实安装路径在/usr/local/lib/node_modules/下,/usr/local/bin下的可执行文件只是软链接而已   2、可以直接在命令行里使用   实现细节在上面其实就讲到了,通过在`/usr/local/bin下创建软链接的方式实现。这里不赘述   更直观的例子   下面就直接看下,当我们在项目目录下运行grunt task(task为具体的grunt任务名,自行替换)时,发生了什么事情。这里要借助node-inspector。   首先,没接触过node-inspector的童鞋可以参考之前的文章了解下   运行如下命令开启调试   node-inspector &   见到如下输出   casperchenMacBookPro:tmp casperchen$ node-inspector &   [1] 14390   casperchenMacBookPro:tmp casperchen$ Node Inspector v0.6.1   info - socket.io started   Visit 127.0.0.1:8080/debug?port=5858 to start debugging.   接着,在当前任务下运行grunt任务   ^CcasperchenMacBookPro:testUsemin casperchen$ node --debug-brk $(which grunt) dev   debugger listening on port 5858   接着,打开chrome浏览器,输入网址127.0.0.1:8080/debug?port=5858,就会自动进入断点调试状态。从一旁显示的tips可以看到,全局命令grunt其实就是/usr/local/lib/node_modules/grunt-cli/bin/grunt   按下F8接着往下跑,就会进如Gruntfile.js,此时的grunt,是本地安装的一个node包。全局命令跟本地的包名字一样,挺有迷惑性的。

前端自动化:谈谈grunt和gulp的区别:

1、易用  Gulp相比Grunt更简洁,而且遵循代码优于配置策略,维护Gulp更像是写代码。

2、高效  Gulp相比Grunt更有设计感,核心设计基于Unix流的概念,通过管道连接,不需要写中间文件。

3、高质量  Gulp的每个插件只完成一个功能,这也是Unix的设计原则之一,各个功能通过流进行整合并完成复杂的任务。例如:Grunt的imagemin插件不仅压缩图片,同时还包括缓存功能。他表示,在Gulp中,缓存是另一个插件,可以被别的插件使用,这样就促进了插件的可重用性。目前官方列出的有673个插件。

4、易学  Gulp的核心API只有5个,掌握了5个API就学会了Gulp,之后便可以通过管道流组合自己想要的任务。

5、流  使用Grunt的I/O过程中会产生一些中间态的临时文件,一些任务生成临时文件,其它任务可能会基于临时文件再做处理并生成最终的构建后文件。而使用Gulp的优势就是利用流的方式进行文件的处理,通过管道将多个任务和操作连接起来,因此只有一次I/O的过程,流程更清晰,更纯粹。

6、代码优于配置  维护Gulp更像是写代码,而且Gulp遵循CommonJS规范,因此跟写Node程序没有差别。

怎么在windows下安装grunt: Grunt基于Node.js其 npm Node.js 包管理器GruntGrunt插件通 npm 安装并管理
Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用
安装Node.js:
Node.js官网点击INSTALL载并安装现Node.js自安装npm
安装完打命令行进行续操作(始->输入CMD 或 始->所程序 ->命令提示符)
进入Node.js安装目录(默认路径"C:\Program Files\nodejs"):
cd \pro*\nod*

通2命令查看 node.js npm 版本号:
node -v
npm -v
安装Grunt:
前安装0.3版本请先卸载:
npm uninstall -g grunt
安装Grunt命令行(CLI):
npm install -g grunt-cli
注1:-g代表全局安装Grunt二版本:服务器端版本(grunt)客户端版本(grunt-cli)
注2:安装grunt-cli并等于安装gruntgrunt CLI任务简单:调用与Gruntfile同目录grunt带处允许同系统同安装版本gruntgrunt使用模块结构除安装命令行界面外要根据需要安装相应模块些模块应该采用局部安装同项目能需要同模块同版本
述命令执行完grunt 命令加入系统路径任何目录执行命令
创建新Grunt项目:
假设项目安装D盘根目录我首先进度D盘:
d:
创建项目文件夹:
mkdir testProject
进入文件夹:
cd testProject
接着项目文件夹根目录添加两文件:package.json Gruntfile
package.json: 文件npm用于存储项目元数据便项目发布npm模块
Gruntfile: 文件命名 Gruntfile.js 或 Gruntfile.coffee用配置或定义任务(task)并加载Grunt插件
创建package.json文件:
package.json应放置于项目根目录与Gruntfile同目录并且应该与项目源代码起提交部 grunt-init 模版都自创建特定于项目package.json文件
:执行 npm init 命令(根据默认grunt-init模板引导创建基本package.json文件):
npm init
根据提示填写信息(都允空):

name: (GruntT)      // 模块名称:能包含写字母数字划线空则使用项目文件夹名称代替
version: (0.0.0)     // 版本号
description:       // 描述:npm搜索列表显示
entry point: (index.js) // 模块入口文件
test command:       // 测试脚本
git repository:      // git仓库址
keywords:         // 关键字:用于npm搜索关键字用空格
author:          // 作者
license: (BSD-2-Clause)  // 原协议

二:手创建package.json文件添加项目/模块描述信息:

{
 "name": "my-project",
 "version": "0.1.0"
}

附:
package.json官文档
较完整package.json文件
安装GruntGrunt插件:
:手添加修改package.json文件:

{
 "name": "my-project",
 "version": "0.1.0",
 "devDependencies": {
  "grunt": "~0.4.1",
  "grunt-contrib-cssmin": "~0.7.0"
 }
}

注:devDependencies面参数指定项目依赖GruntGrunt插件版本其"~0.7.0"代表安装该插件某特定版本需安装新版本改"*"
执行:
npm install
发现项目文件夹node_modules文件夹其面应GruntGrunt插件
二:自安装:
通 npm install <module> --save-dev 命令
安装新版Grunt:
npm install grunt --save-dev
接着安装我所需要插件:
npm install grunt-contrib-cssmin --save-dev
注:其--save-dev表示作项目依赖添加package.json文件devDependencies内要安装指定版本Grunt或者Grunt插件需要运行npm install grunt@VERSION --save-dev命令其VERSION所需要版本(指定版本号即)
附:Grunt官插件列表其带星号官维护插件
创建Gruntfile.js文件:

module.exports = function(grunt) {

// 配置任务参数
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
cssmin: {
combine: {
files: {
'css/release/compress.css': ['css/*.css'] // 指定合并CSS文件 ['css/base.css', 'css/global.css']
}
},
minify: {
options: {
keepSpecialComments: 0, /* 删除所注释 */
banner: '/* minified css file */'
},
files: {
'css/release/master.min.css': ['css/master.css']
}
}
}
});

// 插件加载(加载 "cssmin" 模块)
grunt.loadNpmTasks('grunt-contrib-cssmin');

// 自定义任务:通定义 default 任务让Grunt默认执行或任务
grunt.registerTask('default', ['cssmin']);

};

执行配置所任务:
grunt
执行某特定任务:
grunt cssmin
测试:
接着我项目文件夹创建文件夹命名:CSS
并且面创建base.cssmaster.css2CSS文件随便写点内容面
命令行执行grunt看提示说明执行功:
Running "cssmin:combine" (cssmin) task
File css/release/compress.css created.
Running "cssmin:minify" (cssmin) task
File css/release/master.min.css created.
Done, without errors.
参考文档:

如何停止grunt server: 工具/原料

NodeJs
Windows系统
方法/步骤

要使用Grunt,第一件事是安装Node.js。(即使你没用过Node.js也不用担心——你只需安装它让Grunt能运行。)
安装了Node.js之后,用命令行工具执行以下命令:
$ npm install -g grunt-cli
要确认Grunt是否正确安装,可以使用以下命令:
$ grunt --version
下一步是在你的项目的根目录下创建package.json和gruntfile.js两个文件。
创建package.json文件
这个JSON文件让我们指定我们的开发环境所依赖的必须模块。有了它,项目的所有开发者都能保证安装上一致的必须模块,从而保证所有人拥有一样的开发环境。
在项目根目录下的pacakge.json文件中写上:
{
"name" : "SampleGrunt",
"version" : "0.1.0",
"author" : "Brandon Random",
"private" : true,

"devDependencies" : {
"grunt" : "~0.4.0"
}
}
然后在命令行工具运行:
$ npm install
该命令告诉npm 需要安装的必须模块,npm会安装它们,自动保存在项目根目录下一个叫做 node_modules 的文件夹里。
创建gruntfile.js文件
gruntfile.js 文件本质上就是一个wrapper函数,接受grunt作为参数:
module.exports = function(grunt){

grunt.initConfig({
pkg: grunt.file.readJSON('package.json')
});

grunt.registerTask('default', []);

};
现在你已经可以在项目根目录下运行grunt命令行工具了。
$ grunt
> Task "default" not found. Use --force to continue.
这里我们只指定了Grunt作为必须模块,还没定义任何任务。接下来我们就要指定任务和必须模块。首先来看如何拓展package.json文件。
拓展package.json文件
使用Node.js最好的一点,就是它可以根据package.json文件的内容,一次性查找和安装多个package。要安装我们项目的所有必须任务,只须在package.json文件中加上以下内容:
{
"name" : "SampleGrunt",
"version" : "0.1.0",
"author" : "Mike Cunsolo",
"private" : true,

"devDependencies" : {
"grunt" : "~0.4.0",
"grunt-contrib-cssmin": "*",
"grunt-contrib-sass": "*",
"grunt-contrib-uglify": "*",
"grunt-contrib-watch": "*",
"grunt-cssc": "*",
"grunt-htmlhint": "*",
"matchdep": "*"
}
}
那么如何实现安装?你肯定已经猜到了:
$ npm install
使用Grunt载入任务
package安装好后,还必须被Grunt载入才能为我们所用。使用 matchdep,我们用一行代码就可以自动载入所有任务。这是开发流程的一大优化,因为现在我们只须把必须任务列表写在package.json一个文件里,便于管理。
在gruntfile.js里,grunt.initConfig之上,写上以下代码:
require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks);
要是没有matchdep,我们就必须为每一个必须任务写一次grunt.loadNpmTasks(“grunt-task-name”); ,随着我们使用的任务的增加,这些载入任务的代码很快就会变得相当繁冗。在Grunt载入这些任务前,我们还可以指定设置选项。
现在我们需要创建我们的HTML文件(index.html):

Enter your first name

用HTMLHint验证HTML
在grunt.initConfig里加入下列设置代码:
htmlhint: {
build: {
options: {
'tag-pair': true,
'tagname-lowercase': true,
'attr-lowercase': true,
'attr-value-double-quotes': true,
'doctype-first': true,
'spec-char-escape': true,
'id-unique': true,
'head-script-disabled': true,
'style-disabled': true
},
src: ['index.html']
}
}
一般来说,一个plugin的设置方法如下:plugin的名称(去掉grunt-contrib-或grunt-前缀),选择使用此plugin的一个或多个对象(在这里可以给不同文件设置此plugin 的不同选项),一个选项object,以及plugin要作用的对象。现在,如果我们用命令行工具运行grunt htmlhint,该plugin就会检查我们在src里指定的HTML文件,验证其中有没有错误!但是每个小时都要手动运行几次这个任务,很快就让人觉得很繁琐了。
自动化任务运行
watch是一个特殊的任务,它可以在目标文件保存时自动触发一系列任务的运行。在grunt.initConfig里加入以下设置:
watch: {
html: {
files: ['index.html'],
tasks: ['htmlhint']
}
}
然后,在命令行工具中运行grunt watch命令。现在,你可以试试在index.html里加一行注释,保存文件。你会注意到,保存文件时会自动触发HTML的验证!这是对开发流程的一大优化:在你写代码时,watch任务就会默默同时为你验证代码,如果验证失败任务就会报告失败(它还会告诉你问题在哪)。
注意grunt watch任务会一直运行,直到命令行工具关闭,或手动停止(control+c在Mac中)。
保持JavaScript极简
让我们来写一个验证用户输入的名字的JavaScript文件。简便起见,我们这里只检查其中是否含有非字母的字符。我们的JavaScript会使用strict模式,这可以防止我们写可用但低质量的JavaScript。创建assets/js/base.js文件并在其中写上:
function Validator()
{
"use strict";
}

Validator.prototype.checkName = function(name)
{
"use strict";
return (/[^a-z]/i.test(name) === false);
};

window.addEventListener('load', function(){
"use strict";
document.getElementById('firstname').addEventListener('blur', function(){
var _this = this;
var validator = new Validator();
var validation = document.getElementById('namevalidation');
if (validator.checkName(_this.value) === true) {
validation.innerHTML = 'Looks good! :)';
validation.className = "validation yep";
_this.className = "yep";
}
else {
validation.innerHTML = 'Looks bad! :(';
validation.className = "validation nope";
_this.className = "nope";
}

});
});
让我们用UglifyJS来极简化这个源代码,在grunt.initConfig中加上以下设置:
uglify: {
build: {
files: {
'build/js/base.min.js': ['assets/js/base.js']
}
}
}
UglifyJS会替换所有的变量和函数名,剔除所有空白和注释,从而生成占据最小空间的JavaScript文件,对发布非常有用。同样地,我们需要设置一个watch任务来使用它,在watch的设置里加入以下代码:
watch: {
js: {
files: ['assets/js/base.js'],
tasks: ['uglify']
}
}
9
现在我们有了一个静态HTML页面,一个存放Sass和JavaScript源文件的assets文件夹,一个存放优化后的CSS和JavaScript的build文件夹,以及package.json文件和gruntfile.js文件。
至此你已经有了一个不错的基础来进一步探索Grunt。像之前提到的,一个非常活跃的开发者社区在为Grunt开发前端plugin。我建议你现在就到plugin library 去看看那300个以上的plugin。

Windows 下运行 Grunt 命令为什么和 Linux 下的结果不同: 你先检查一下和他的情况类似不?(升级 jshint,如果你装了的话)
如果和 jshint 没关系,那我建议你把你的 Gruntfile 做个排查,说不定是哪个插件造成的,然后再试试升级之类的办法。
实在找不出原因,把 Gruntfile 贴上 Gist 再来,或者直接发 issue。
另外你的 node 是不是老了点啊,换个版本试试,折腾呗~我在公司就有用的 win7(集成测试),但我是不升级就不舒服斯基,只要不是依赖不允许,我都用最新版本,所以我没遇到过和你一样的问题呀。

  • oH-有几个质子

    青岛的旅游有哪些景点: 青岛的旅游景点有:青岛市区内:青岛滨海步行道:也叫“滨海木栈道”,西起团岛,东至石老人,全长约36.9公里。滨海步行道串联起团岛湾、青岛湾、汇泉湾、太平湾、浮山湾、石老人湾。途径青岛海滨风景区和石老人旅游度假区的主要...

    955条评论 1792人喜欢 4209次阅读 551人点赞
  • 24墙一平方多少砖

    深圳试管婴儿备孕,需要做哪些检查?: 今天爱贝医疗试管婴儿帮大家整理一份最全面的试管婴儿前期检查项目供大家参考。女方检查内容:1,雌六项激素全套:(女方月经的第二天检查),请抽血(无需空腹),促卵泡生成素,促黄体生成素,雌二醇,催乳素,孕酮,睾酮,抗苗勒...

    463条评论 3330人喜欢 5270次阅读 796人点赞
  • 五缘湾在厦门哪个区

    在有道上查reward写了个【劳经】报酬 劳经是什么意思: 劳动法,经济学,专业词汇 ...

    220条评论 4583人喜欢 4341次阅读 201人点赞
  • 13333333333户主是谁

    double-reward是什么意思: double reward双倍奖励双语对照例句:1.Behind every painstaking effort will be double reward. 每一发奋努力的背后,必有加倍的赏赐。 ...

    206条评论 1299人喜欢 5710次阅读 983人点赞