99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Grunt 常見問題

2018-11-02 13:52 更新

常見問題

如何安裝grunt?

對于常規(guī)的安裝說明,請閱讀快速入門指南。如果在閱讀完之后你需要更多的詳細(xì)信息,你可以閱讀更詳細(xì)的的安裝 Grunt指南。

什么時(shí)候我將可以使用開發(fā)中的'某某'特性?

安裝 Grunt指南中介紹了如何安裝已發(fā)布的和未發(fā)布的開發(fā)版本的Grunt。

Grunt可以在Windows上工作嗎?

Grunt可以很好的在windows上工作,因?yàn)?a rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" target="_blank">Node.js和npm都能夠很好的在windows上工作。通常情況下,問題在于Cygwin,因?yàn)樗壷粋€(gè)較老版本的Node.js。

避免這個(gè)問題最好的辦法是使用msysGit installer安裝二進(jìn)制的git和使用Node.js installer去安裝二進(jìn)制的nodenpm,然后使用內(nèi)置的Windows command prompt 或 PowerShell 去替代Cygwin。

為什么我的異步任務(wù)不能執(zhí)行完畢?

這是因?yàn)槟阃浾{(diào)用 this.async 方法來告知Grunt你的task是異步執(zhí)行的。為了簡化模型,Grunt采用同步模式的編碼風(fēng)格,你可以通過在任務(wù)中調(diào)用 this.async() 切換到異步模式。

注意,如果task執(zhí)行失敗,可以傳遞 false 給 done() 函數(shù)告知Grunt。

案例:

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

如何啟用shell中的tab鍵自動補(bǔ)全功能?

為了給grunt增加tab鍵自動補(bǔ)功能,可以在你的~/.bashrc文件中添加下面一行代碼:

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

當(dāng)然,假設(shè)你已經(jīng)使用npm install -g grunt在全局安裝好了Grunt。因?yàn)镚runt目前僅僅支持bash命令。

我如讓多個(gè)任務(wù)共享參數(shù)?

雖然每個(gè)任務(wù)可以使用它自己的參數(shù),但是,這里有幾個(gè)方法允許你在多個(gè)task中共享參數(shù)。

"動態(tài)的" 任務(wù)別名

這是多個(gè)任務(wù)共享參數(shù)的首選方法

鑒于任務(wù)別名是很簡單的,一個(gè)普通的task可以使用grunt.task.run讓一個(gè)函數(shù)作為“動態(tài)的”任務(wù)別名。在下面這個(gè)案例中,在命令行中執(zhí)行grunt build:001,最終效果是執(zhí)行foo:001、bar:001 和 baz:001這三個(gè)task。

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);
});

-- 選項(xiàng)

多個(gè)任務(wù)共享參數(shù)的方式是使用grunt.option。在這里有一個(gè)例子,在命令行中執(zhí)行grunt deploy --target=staging會讓grunt.option('target')返回"staging"

grunt.registerTask('upload', 'Upload code to specified target.', function(n) {
  var target = grunt.option('target');
  // do something useful with target here
});
grunt.registerTask('deploy', ['validate', 'upload']);

注意,布爾類型的參數(shù)可以使用一個(gè)沒有值的鍵。例如,在命令行中執(zhí)行grunt deploy --staging會讓grunt.option('staging') 返回true

全局和配置

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

在下面的例子中,在命令行運(yùn)行grunt set_global:name:peter set_config:target:staging deploy會導(dǎo)致global.name的值為"peter"以及grunt.config('target')將會返回"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);
});

當(dāng)出現(xiàn)錯(cuò)誤時(shí)如何獲取調(diào)用棧的追蹤信息?

使用 --stack 參數(shù)就可以看到調(diào)用棧的追蹤信息了。例如:grunt task --stack 。

為什么出現(xiàn) "Maximum call stack size exceeded(超出最大調(diào)用棧大?。?quot; 的錯(cuò)誤?

你可能是為某個(gè)任務(wù)創(chuàng)建的別名和其他任務(wù)重名了。 例如:grunt.registerTask('uglify', ['uglify:my_target']); 應(yīng)該是grunt.registerTask('myUglify', ['uglify:my_target']);。

如何卸載或移除不需要的插件?

至少有兩種方法。一種方法時(shí)利用 npm uninstall [GRUNT_PLUGIN] --save-dev 指令,這將從package.json 文件和 node_modules 目錄下同時(shí)移除指定的插件。另一種方法時(shí)手工從 package.json文件中刪除依賴項(xiàng),然后執(zhí)行 npm prune 指令。

出現(xiàn)錯(cuò)誤 "Fail to install with npm error: No compatible version found"

請確保安裝了最新穩(wěn)定版本的 NPM 和 Node.JS


grunt 0.3 的相關(guān)問題

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

如果你在Gruntfile所在的目錄中時(shí),當(dāng)你輸入grunt時(shí)Windows會嘗試去執(zhí)行那個(gè)文件。因此你需要輸入grunt.cmd

另一個(gè)選擇是使用DOSKEY命令去創(chuàng)建一個(gè)Grunt宏,請參考這篇文章。這樣就可以使用grunt替代grunt.cmd了。

可以使用所示如下的DOSKEY命令:

DOSKEY grunt=grunt.cmd $*
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號