在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 物聯(lián)網(wǎng)/ 常見問(wèn)題
深入任務(wù)內(nèi)幕
grunt.option
退出碼
創(chuàng)建插件
grunt.file
grunt
快速入門
項(xiàng)目腳手架
使用命令行工具
Gruntfile 實(shí)例
配置任務(wù)
創(chuàng)建任務(wù)
grunt.log
安裝Grunt
grunt.util
grunt.event
常見問(wèn)題
grunt.config
grunt.task
grunt.template
grunt.fail

常見問(wèn)題

如何安裝Grunt?

對(duì)于一般安裝說(shuō)明,請(qǐng)閱讀新手入門指南。如果你在閱完讀新手入門指南之后想要了解更多具體的信息,請(qǐng)閱讀詳細(xì)的安裝Grunt指南。

我什么時(shí)候能夠使用開發(fā)中的某個(gè)特性?

依據(jù)安裝Grunt指南中的說(shuō)明可以了解如何安裝發(fā)布的和未發(fā)布的開發(fā)版本的Grunt(對(duì)于插件,你也可以使用npm安裝并添加到依賴中使用;對(duì)于新的特性可以查閱相關(guān)說(shuō)明安裝使用)。

Grunt能在Windows上工作嗎?

Grunt可以很好的工作在Windows平臺(tái),因?yàn)?a rel="nofollow" >Node.js和npm在Windows上都工作得很好(Grunt是基于Node.js的,因而是能夠跨平臺(tái)工作,對(duì)于特定平臺(tái)不支持的特性一般都會(huì)有相關(guān)說(shuō)明或者有兼容性的選擇來(lái)支持)。通常情況下問(wèn)題在于Cygwin,因?yàn)樗壛艘粋€(gè)過(guò)時(shí)版本的Node.js。

避免這個(gè)問(wèn)題最好的方式是使用msysGit安裝器安裝二進(jìn)制的git,然后使用Node.js安裝器安裝二進(jìn)制的nodenpm,并且使用內(nèi)置的Window命令提示符或者PowerShell替代Cygwin(或者說(shuō)我們首可以先安裝好Git環(huán)境,然后將托管在Github上的Grunt庫(kù)克隆到本地來(lái)安裝使用Grunt,在工具方面Windows對(duì)Node.js的支持或許有欠缺,但是在對(duì)Node.js本身的支持上已經(jīng)做得很好了)。

為什么我的異步任務(wù)不能完成?

如果發(fā)生這種情況可能是由于你忘記調(diào)用this.async方法來(lái)告訴Grunt,你的任務(wù)是異步的。為了簡(jiǎn)單起見,Grunt使用了同步編碼的風(fēng)格,可以通過(guò)在任務(wù)體內(nèi)調(diào)用this.async()方法將該任務(wù)轉(zhuǎn)換為異步任務(wù)。

注意,可以傳遞falsedone()函數(shù)來(lái)告訴Grunt該任務(wù)失敗。

例子:

grunt.registerTask('asyncme', 'My asynchronous task.', function() {
    var done = this.async();
    doSomethingAsync(done);
});

如何啟用tab命令來(lái)自動(dòng)補(bǔ)全?

添加下面的代碼到你的~/.bashrc文件中來(lái)在Grunt中來(lái)啟用bash tab自動(dòng)補(bǔ)全功能:

eval "$(grunt --completion=bash)"

當(dāng)然前提是你已經(jīng)使用npm install -g grunt在全局范圍內(nèi)安裝好了Grunt。當(dāng)前,自動(dòng)補(bǔ)全唯一支持的shell腳本是bash。

如何跨多任務(wù)共享參數(shù)?

雖然每個(gè)任務(wù)都可以接受它自己的參數(shù),但是這里有幾個(gè)選項(xiàng)可以在多個(gè)任務(wù)之間進(jìn)行參數(shù)共享。

"動(dòng)態(tài)"別名任務(wù)

這是在多任務(wù)間共享參數(shù)的首選方法。

別名任務(wù)是非常簡(jiǎn)單的,一個(gè)常規(guī)的任務(wù)可以使用grunt.task.run方法讓它編程一個(gè)有效的"動(dòng)態(tài)的"別名任務(wù)函數(shù)。在下面的例子中,在命令行運(yùn)行grunt build:001的結(jié)果就是執(zhí)行foo:001,bar:001baz:001這三個(gè)任務(wù)。

grunt.registerTask('build', 'Run all my build tasks.', function(n) {
  if (n == null) {
    grunt.warn('Build num must be specified, like build:001.');
  }
  grunt.task.run('foo:' + n, 'bar:' + n, 'baz:' + n);
});

-- options

另一種跨多任務(wù)共享參數(shù)的方式就是使用grunt.option。在下面的例子中,在命令行中運(yùn)行grunt deploy --target=staging將導(dǎo)致grunt.option('target')返回"staging"

grunt.registerTask('upload','Upload code to specified target.', function(n){
    var target = grunt.option('target');
    //在這里使用target做一些有用的事情
});
grunt.registerTask('deploy', ['validate', 'upload']);

注意布爾類型的選項(xiàng)(options)可以只指定使用一個(gè)沒有值的鍵。例如,在命行中運(yùn)行grunt deploy --staging將導(dǎo)致grunt.option('staging')返回true.

全局和配置

在其他情況下,你可能希望暴露一個(gè)設(shè)置配置或者全局的值方法。 在這種情況下,可以在注冊(cè)任務(wù)時(shí)設(shè)置其參數(shù)作為一個(gè)全局對(duì)象的或者項(xiàng)目配置的值。

在下面的例子中,在命令行運(yùn)行grunt set_global:name:peter set_config:target:staging deploy會(huì)導(dǎo)致global.name的值為"peter"以及grunt.config('target')將會(huì)返回"staging"。由此推斷,deploy任務(wù)就可以使用這些值。

grunt.registerTask('set_global', 'Set a global variable.', function(name, val){
    global[name] = val;
});

grunt.registerTask('set_config', 'Set a config property.', function(name, val){
    grunt.config.set(name, val);
});

Grunt 0.3相關(guān)問(wèn)題

在Windows的Grunt 0.3中, 為什么當(dāng)我嘗試運(yùn)行g(shù)runt時(shí)會(huì)打開我的JS編輯器

如果你在Gruntfile所在目錄中(在命令行進(jìn)入到這個(gè)目錄),當(dāng)你輸入grunt時(shí),Windows中會(huì)嘗試執(zhí)行該文件(實(shí)際上Windows中會(huì)嘗試執(zhí)行g(shù)runt.js,因?yàn)樵?.4.x之前的版本中Gruntfile.js名為grunt.js)。因此你應(yīng)該輸入grunt.cmd來(lái)替代。

另一種方式是使用DOSKEY命令創(chuàng)建一個(gè)Grunt宏, 可以參考也讀這篇文章。這樣就會(huì)允許你使用grunt來(lái)替代grunt.cmd。

下面是你可以使用的DOSKEY命令:

DOSKEY grunt=grunt.cmd $*