Heim Web-Frontend js-Tutorial js modulare Entwicklung – Gruntfile.js ausführliche Erklärung

js modulare Entwicklung – Gruntfile.js ausführliche Erklärung

Nov 28, 2019 pm 03:38 PM
模块化

js modulare Entwicklung – Gruntfile.js ausführliche Erklärung

1. Einführung in das Grunt-Modul

Das Grunt-Plug-in ist ein Automatisierungstool in der npm-Umgebung. Bei Aufgaben, die wiederholt wiederholt werden müssen, wie Komprimierung, Kompilierung, Unit-Tests, Linting usw., können automatisierte Tools Ihren Arbeitsaufwand reduzieren und Ihre Arbeit vereinfachen. Das Grunt-Modul führt Aufgaben basierend auf der Konfiguration in der Datei Gruntfile.js aus.
Wenn der folgende Befehl in package.json definiert ist:

[Verwandte Kursempfehlungen: JavaScript-Video-Tutorial]

"scripts": {
    "build": "npm install && grunt"
}
Nach dem Login kopieren

Weil npm run build ausgeführt wird Einige in devDependencies definierte Module werden zuerst installiert. Das Ausführen des Befehls npm run build entspricht der folgenden Vorgehensweise:

● npm install grunt-cli -g

● npm install

● grunt

2. Die Struktur von gruntfile.js:

● „Wrapper“-Funktion

● Projekt- und Aufgabenkonfiguration

● Laden von Grunz-Plugins und Aufgaben

● Benutzerdefinierte Aufgaben

3. „Wrapper“-Funktion

Jede Kopie von Gruntfile.js (und das Grunt-Plug-in) folgen alle dem gleichen Format. Der von Ihnen geschriebene Grunt-Code muss in dieser Funktion platziert werden:

module.exports = function(grunt){
         //do grunt-related things in here
}
Nach dem Login kopieren

4. Projekt- und Aufgabenkonfiguration

Groß Einige Grunt-Aufgaben basieren auf bestimmten Konfigurationsdaten. Wir konfigurieren die Parameter der Grunt-Aufgabe über die grunt.initConfig-Methode.
Der Parameter der grunt.initConfig-Methode ist ein JSON-Objekt. In diesem Konfigurationsobjekt können Sie beliebige Daten speichern. Da es sich außerdem um JavaScript handelt, können Sie hier jeden gültigen JS-Code verwenden. Sie können sogar die Vorlagenzeichenfolge <% %> verwenden, um auf die konfigurierten Eigenschaften zu verweisen, zum Beispiel:

// 项目和任务配置
grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'), //获取 package.json 中的元数据(js代码)
  proj:{
    name:'hello',
    description:'a hello demo'
  },
  hello: {
    options: {
      name: '<%= proj.name %>'  //用<% %>模板字符串匹配hello
    },
    srcs: ['1.txt', '2.txt']
  }
});
Nach dem Login kopieren

Eigenschaften, die in der grunt.initConfig-Methode konfiguriert sind, im Task-Modul kann die grunt.config-Methode sein Wird verwendet, um beispielsweise auf Folgendes zuzugreifen:

grunt.config("proj.name");
Nach dem Login kopieren

Darüber hinaus extrahiert das Grunt-Task-Modul automatisch die Attribute, die dem Task-Namen im Konfigurationsobjekt entsprechen, basierend auf dem Task-Namen. Zum Beispiel beim Definieren des Task-Hallo. Konfigurieren Sie im Attribut „Hallo“, das dem Konfigurationsobjekt entspricht, die Konfiguration und die Daten, die für die Aufgabenausführungsfunktion erforderlich sind.

5. Laden von Grunz-Plug-In-Aufgaben

Um Doppelarbeit zu reduzieren, können wir vorhandene Plug-In-Aufgaben laden.

1. Laden Sie Ihr eigenes privates Grunz-Plug-in

Sie können einige Ihrer eigenen definierten Aufgabenskripte im selben Verzeichnis ablegen und sie aus dem angegebenen Verzeichnis laden die grunt.loadTasks-Methode Alle Grunt-Task-Skripte in diesem Verzeichnis.

2. Laden Sie das in npm veröffentlichte Grunt-Plug-in

Gemeinsame Aufgaben wie grunt-contrib-copy und grunt-contrib-uglify wurden als Grunt-Plugin implementiert. ins Das Formular wurde in der öffentlichen Bibliothek von npm entwickelt und veröffentlicht. Solange die zu verwendenden Plug-Ins in der Abhängigkeit in der Datei package.json aufgeführt und über npm install installiert sind, kann die Aufgabe direkt geladen werden.

// 加载能够提供"copy"任务的插件。
grunt.loadNpmTasks('grunt-contrib-copy');
Nach dem Login kopieren

3. Alle Plug-Ins, die mit „grunt-“ beginnen, direkt laden

Es gibt ein Load-Grunt-Tasks-Plug-In auf npm, das verwendet werden kann um alle Plug-ins in der Abhängigkeitsliste zu laden. Plug-ins, die mit „grunt-“ beginnen.
Listen Sie die Plug-Ins auf, die verwendet werden müssen, beginnend mit „grunt-“ in der Abhängigkeit, und rufen Sie sie dann in Gruntfile.js auf.

//Load grunt tasks from NPM packages
load-grunt-tasks
Nach dem Login kopieren

6. Benutzerdefinierte Aufgaben

1. Definieren Sie direkt das Verhalten der Aufgabe

grunt.registerTask('hello', 'Show some msg', function() {
  console.log(this.options().name); //输出hello
});
Nach dem Login kopieren

2. Definition Für die Aufgabenliste

kann eine Aufgabe als Kombination einer Reihe von Aufgaben definiert werden, die nacheinander ausgeführt werden.

grunt.registerTask('dothings', 'copy and Show some msg', ['copy','hello']);
Nach dem Login kopieren

3. Standardaufgaben definieren

Durch die Definition der Standardaufgabe können Sie Grunt standardmäßig eine oder mehrere Aufgaben ausführen lassen. Wenn Sie beim Ausführen des Grunt-Befehls keine Aufgabe angeben, wird die Standardaufgabe ausgeführt. Wenn unten definiert, entspricht die Ausführung von grunt der Ausführung von grunt hello.

grunt.registerTask('default', ['hello']);
Nach dem Login kopieren

4. Zusammengesetzte Aufgaben definieren

Die zusammengesetzte Aufgabe kann die entsprechenden in der grunt.initConfig-Methode konfigurierten Attribute festlegen . Die definierten Attribute werden der Reihe nach als Ziel:Datenpaare verarbeitet.

module.exports = function(grunt) {
    grunt.initConfig({
        Log: {
            options: {
                sep: ';'
            },
            srcs: ['1.txt', '2.txt'],
            dests: ['d1.txt', 'd2.txt']
        }
    });
    grunt.registerMultiTask("Log", function() {
        var options = this.options({ sep: '&' });
        console.log(this.target); 
        console.log(this.data.join(options.sep));
    });
};
Nach dem Login kopieren

Das Ausführen von grunt Log gibt Folgendes aus:

Running "Log:srcs" (Log) task
srcs
1.txt;2.txt
Running "Log:dests" (Log) task
dests
d1.txt;d2.txt

定义任务行为Tips

1.任务内部可以执行其他的任务。

grunt.registerTask('mytask', function() {
  grunt.task.run('task1', 'task2');
  // Or:
  grunt.task.run(['task1', 'task2']);
});
Nach dem Login kopieren

2.定义异步任务

grunt.registerTask('mytask', function() {
  var done = this.async();
  //do something
  done();
});
Nach dem Login kopieren

3.当任务失败时,所有后续任务都将终止

在任务中,当执行失败,可以return false来表明当前任务执行失败,一般,多个任务按顺序执行,如果有任务失败时,所有后续任务都将终止。可以通过在命令行后加上--force来使有任务失败时,后续任务能继续进行。

4.任务中检查前置任务状态

有些任务可以依赖于其他任务的成功执行。通过grunt.task.requires方法来检查其前置任务是否已经执行,并且没有失败。

5.任务中检查配置属性

可以用方法grunt.task.requiresConfig指定一个或者多个字符串或者数组的配置属性为必需的。如果一个或多个必需的配置属性缺失,就通知系统当前任务失败。

本文来自 js教程 栏目,欢迎学习!  

Das obige ist der detaillierte Inhalt vonjs modulare Entwicklung – Gruntfile.js ausführliche Erklärung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So optimieren Sie die Wartbarkeit von Java-Code: Erfahrungen und Ratschläge So optimieren Sie die Wartbarkeit von Java-Code: Erfahrungen und Ratschläge Nov 22, 2023 pm 05:18 PM

So optimieren Sie die Wartbarkeit von Java-Code: Erfahrungen und Ratschläge Im Softwareentwicklungsprozess ist das Schreiben von Code mit guter Wartbarkeit von entscheidender Bedeutung. Wartbarkeit bedeutet, dass Code leicht verstanden, geändert und erweitert werden kann, ohne dass es zu unerwarteten Problemen oder zusätzlichem Aufwand kommt. Für Java-Entwickler ist die Optimierung der Wartbarkeit von Code ein wichtiges Thema. In diesem Artikel werden einige Erfahrungen und Vorschläge geteilt, um Java-Entwicklern dabei zu helfen, die Wartbarkeit ihres Codes zu verbessern. Befolgen Sie standardisierte Benennungsregeln. Standardmäßige Benennungsregeln können die Lesbarkeit des Codes verbessern.

Wie kann der Codekomplexitätsfehler im Python-Code behoben werden? Wie kann der Codekomplexitätsfehler im Python-Code behoben werden? Jun 24, 2023 pm 05:43 PM

Python ist eine einfache, leicht zu erlernende und effiziente Programmiersprache. Wenn wir jedoch Python-Code schreiben, können Probleme mit übermäßiger Codekomplexität auftreten. Wenn diese Probleme nicht gelöst werden, wird es schwierig, den Code zu warten, fehleranfällig zu machen und die Lesbarkeit und Skalierbarkeit des Codes zu verringern. In diesem Artikel besprechen wir daher, wie man Codekomplexitätsfehler in Python-Code beheben kann. Verständnis der Codekomplexität Die Codekomplexität ist ein Maß für die Art des Codes, der schwer zu verstehen und zu warten ist. In Python gibt es einige Indikatoren, die verwendet werden können

Wie kann der Fehler der schlechten Wartbarkeit von Python-Code behoben werden? Wie kann der Fehler der schlechten Wartbarkeit von Python-Code behoben werden? Jun 25, 2023 am 11:58 AM

Python wird als höhere Programmiersprache häufig in der Softwareentwicklung verwendet. Obwohl Python viele Vorteile bietet, besteht ein Problem, mit dem viele Python-Programmierer häufig konfrontiert sind, darin, dass der Code weniger wartbar ist. Die Wartbarkeit von Python-Code umfasst die Lesbarkeit, Skalierbarkeit und Wiederverwendbarkeit des Codes. In diesem Artikel konzentrieren wir uns darauf, wie das Problem der schlechten Wartbarkeit von Python-Code gelöst werden kann. 1. Lesbarkeit des Codes Die Lesbarkeit des Codes bezieht sich auf die Lesbarkeit des Codes, die den Kern der Wartbarkeit des Codes darstellt.

Leitfaden zur Implementierung der modularen Entwicklung in Vue-Großprojekten Leitfaden zur Implementierung der modularen Entwicklung in Vue-Großprojekten Jun 09, 2023 pm 04:07 PM

In der modernen Webentwicklung wird Vue als flexibles, benutzerfreundliches und leistungsstarkes Frontend-Framework häufig bei der Entwicklung verschiedener Websites und Anwendungen eingesetzt. Bei der Entwicklung großer Projekte ist die Vereinfachung der Codekomplexität und die einfachere Wartung des Projekts ein Problem, mit dem sich jeder Entwickler auseinandersetzen muss. Die modulare Entwicklung kann uns helfen, Code besser zu organisieren, die Entwicklungseffizienz und die Lesbarkeit des Codes zu verbessern. Im Folgenden werde ich einige Erfahrungen und Richtlinien für die Implementierung der modularen Entwicklung in Vue-Großprojekten teilen: 1. Klare Arbeitsteilung in einem Großprojekt

Was ist Modularität in Vue? Was ist Modularität in Vue? Dec 23, 2022 pm 06:06 PM

In Vue besteht die Modularisierung darin, eine einzelne Funktion in einem Modul (einer Datei) zu kapseln. Die Module sind voneinander isoliert, interne Mitglieder können jedoch über bestimmte Schnittstellen verfügbar gemacht werden und können sich auch auf andere Module verlassen (um die Wiederverwendung von Code zu erleichtern). Verbessern Sie die Entwicklungseffizienz und erleichtern Sie die spätere Wartung. Die Vorteile der modularen Entwicklung: 1. Klare Organisation und einfache Wartung. 2. Alle Daten werden nicht auf einmal angefordert. Die Benutzererfahrung ist gut. 3. Module sind voneinander isoliert, aber interne Mitglieder können durch spezifische Informationen verfügbar gemacht werden Schnittstellen oder Hängt von anderen Modulen ab.

So verwenden Sie die Go-Sprache für die Praxis der Code-Modularisierung So verwenden Sie die Go-Sprache für die Praxis der Code-Modularisierung Aug 03, 2023 am 10:31 AM

So verwenden Sie die Go-Sprache für die Praxis der Code-Modularisierung: In der Softwareentwicklung ist die Code-Modularisierung eine gängige Entwicklungsmethode. Durch die Aufteilung des Codes in wiederverwendbare Module können die Wartbarkeit, Testbarkeit und Wiederverwendbarkeit des Codes verbessert werden. In diesem Artikel wird die Verwendung der Go-Sprache zum Üben der Codemodularisierung vorgestellt und entsprechende Codebeispiele bereitgestellt. 1. Die Vorteile der Modularisierung verbessern die Wartbarkeit des Codes: Durch die Modularisierung wird der Code in unabhängige Funktionsmodule unterteilt, und jedes Modul ist für bestimmte Aufgaben verantwortlich, wodurch der Code klarer und einfacher zu ändern ist. Der Code kann verbessert werden

Zusammenfassung der Python-Entwicklungserfahrung: Praktiken zur Verbesserung der Wartbarkeit und Skalierbarkeit des Codes Zusammenfassung der Python-Entwicklungserfahrung: Praktiken zur Verbesserung der Wartbarkeit und Skalierbarkeit des Codes Nov 22, 2023 pm 12:22 PM

Zusammenfassung der Python-Entwicklungserfahrung: Praktiken zur Verbesserung der Wartbarkeit und Skalierbarkeit des Codes Im Softwareentwicklungsprozess stoßen wir häufig auf Anforderungsänderungen, Funktionsiterationen usw., sodass die Wartbarkeit und Skalierbarkeit des Codes zu einem wichtigen Bestandteil des Entwicklungsprozesses geworden sind. Themen, die ernst genommen werden müssen. Insbesondere in der Python-Entwicklung ist die Verbesserung der Wartbarkeit und Skalierbarkeit von Code zu einem häufigen Anliegen von Entwicklern geworden. In diesem Artikel werden einige Vorgehensweisen zur Verbesserung der Wartbarkeit und Skalierbarkeit von Python-Code zusammengefasst, in der Hoffnung, Python-Entwicklern einige Vorteile zu bringen.

Chaon bringt industrielle Mini-Hosts der TGS-1000-Serie auf den Markt: Unterstützt Stapelschnittstellen-Erweiterungsmodule und ist mit MTL-Prozessoren ausgestattet Chaon bringt industrielle Mini-Hosts der TGS-1000-Serie auf den Markt: Unterstützt Stapelschnittstellen-Erweiterungsmodule und ist mit MTL-Prozessoren ausgestattet Aug 14, 2024 pm 01:33 PM

Laut Nachrichten dieser Website vom 14. August brachte Chaoen Vecow am 22. Juli, Pekinger Zeit, den industriellen Mini-Host der TGS-1000-Serie auf den Markt, der mit dem Intel Core Ultra-Prozessor der ersten Generation ausgestattet ist. Das Besondere an dieser Produktserie ist, dass sie vertikales Stapeln unterstützt, um zusätzliche I/O-Ports zu erweitern. Die TGS-1000-Serie ist in zwei Modelle unterteilt: TGS-1000 und TGS-1500. Der Unterschied besteht darin, dass die Unterseite des TGS-1500 ein Modul enthält, das MXM-Grafikkarten oder bis zu einer RTX5000Ada-Mobilversion unterstützt von professionellen NVIDIA-Karten. ▲Mini-Hosts der TGS-1500TGS-1000-Serie sind mit Intel Core Ultra7165H- oder Ultra5135H-Prozessoren erhältlich, ausgestattet mit Dual-D

See all articles