खोज…


टिप्पणियों

परिचय

हुक कोड के टुकड़े होते हैं जो कॉर्डोवा सीएलआई आपके कॉर्डोवा / आयोनिक एप्लिकेशन बिल्ड में कुछ बिंदुओं पर निष्पादित करता है। हुक का उपयोग हमारे प्रोजेक्ट में फ़ाइलों में हेरफेर करने के लिए किया जा सकता है, स्वचालित रूप से आपके एप्लिकेशन में प्लगइन्स जोड़ सकते हैं या उदाहरण के लिए आपकी फ़ाइलों में कोड त्रुटियों के लिए जाँच करें।

नोट : यह अत्यधिक की सिफारिश की जाती है कि Node.js का उपयोग करके अपने हुक लिखें ताकि वे क्रॉस-प्लेटफ़ॉर्म पर हों लेकिन आप उन्हें जावास्क्रिप्ट में उदाहरण के लिए भी लिख सकते हैं।

हुक प्रकार

निम्नलिखित हुक प्रकार समर्थित हैं और निष्पादन आदेश नाम के अनुसार काफी आत्म-व्याख्यात्मक है।

after_build
after_compile
after_docs
after_emulate
after_platform_add
after_platform_rm
after_platform_ls
after_plugin_add
after_plugin_ls
after_plugin_rm
after_plugin_search
after_prepare
after_run
after_serve
before_build
before_compile
before_docs
before_emulate
before_platform_add
before_platform_rm
before_platform_ls
before_plugin_add
before_plugin_ls
before_plugin_rm
before_plugin_search
before_prepare
before_run
before_serve
pre_package/ <-- Applicable to Windows 8 and Windows Phone only. This hook is deprecated.

हुक को परिभाषित करने के तरीके:

हुक को प्रोजेक्ट के config.xml में परिभाषित किया जा सकता है <hook> तत्वों का उपयोग करके, उदाहरण के लिए:

<hook type="after_build" src="scripts/appAfterBuild.js" />

एक प्लगइन डेवलपर के रूप में आप इस तरह एक plugin.xml में <hook> तत्वों का उपयोग करके हुक स्क्रिप्ट को परिभाषित कर सकते हैं:

<hook type="after_build" src="scripts/afterBuild.js" />

before_plugin_install , after_plugin_install , before_plugin_uninstall प्लगइन हुक विशेष रूप से स्थापित / अनइंस्टॉल होने वाले प्लगइन के लिए निकाल दिए जाएंगे।

नोट : हुक root/hooks निर्देशिका में हुक plugin.xml config.xml और plugin.xml में हुक तत्वों के पक्ष में पदावनत माना जाता है। यदि आप इस दृष्टिकोण का उपयोग करते हैं, तो root/hooks फ़ोल्डर में फाइलों पर अमल अधिकार सेट करने के लिए याद रखें।

कॉर्डोवा हुक के लिए प्रलेखन यहां पाया जा सकता है

Jshint का उपयोग करने से पहले अपने जावास्क्रिप्ट फ़ाइलों में त्रुटियों के लिए जाँच करना

#!/usr/bin/env node

var fs = require('fs');
var path = require('path');
var jshint = require('jshint').JSHINT;
var async = require('async');

var foldersToProcess = [
  'js'
];

foldersToProcess.forEach(function(folder) {
  processFiles("www/" + folder);
});

function processFiles(dir, callback) {
  var errorCount = 0;
  fs.readdir(dir, function(err, list) {
    if (err) {
      console.log('processFiles err: ' + err);
      return;
    }
    async.eachSeries(list, function(file, innercallback) {
      file = dir + '/' + file;
      fs.stat(file, function(err, stat) {
        if (!stat.isDirectory()) {
          if (path.extname(file) === ".js") {
            lintFile(file, function(hasError) {
              if (hasError) {
                errorCount++;
              }
              innercallback();
            });
          } else {
            innercallback();
          }
        } else {
          processFiles(file);
        }
      });
    }, function(error) {
      if (errorCount > 0) {
        process.exit(1);
      }
    });
  });
}

function lintFile(file, callback) {
  console.log("Linting " + file);
  fs.readFile(file, function(err, data) {
    if (err) {
      console.log('Error: ' + err);
      return;
    }
    if (jshint(data.toString())) {
      console.log('File ' + file + ' has no errors.');
      console.log('-----------------------------------------');
      callback(false);
    } else {
      console.error('Errors in file ' + file);
      var out = jshint.data(),
          errors = out.errors;
      for (var j = 0; j < errors.length; j++) {
        console.error(errors[j].line + ':' + errors[j].character + ' -> ' + errors[j].reason + ' -> ' + errors[j].evidence);
      }
      console.error('-----------------------------------------');
      setTimeout(function() {
        callback(true);
      }, 10);
    }
  });
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow