recherche
Maisoninterface Webjs tutorielDonnez la botte de grognement! Un guide pour utiliser le NPM comme outil de construction

Give Grunt the Boot! A Guide to Using npm as a Build Tool

De nombreux outils de construction et de flux de travail frontaux existent, notamment Grunt, Gulp, Brocoli et Jake. Ces outils automatisent les tâches de projet répétitives, telles que la minification, la concaténation, les tests et la compilation de code. Cependant, l'ajout d'une autre dépendance pourrait être inutile. Une alternative NODE.JS intégrée, NPM, gère efficacement bon nombre de ces tâches. Cet article explore les capacités de NPM en tant qu'outil de construction. Pour les débutants NPM, consultez notre guide d'introduction. Les exemples de code sont disponibles sur github.

Avantages clés de l'utilisation de NPM comme outil de construction:

  • Dépendances réduites: Tirez parti du NPM (inclus avec Node.js) pour minimiser le besoin d'outils supplémentaires comme Grunt ou Gulp.
  • Scripts NPM automatisés: Utilisez des scripts NPM dans package.json pour automatiser la lie, les tests et les minification, rationalisation de votre flux de travail.
  • Processus de construction simplifiés: Combinez plusieurs scripts NPM pour un processus de construction complet (line, test, minification) exécuté séquentiellement.
  • PRE / POST CROCKS pour un développement amélioré: Utilisez des pré- et des post-hooks pour automatiser les tâches comme la libellur
  • Surveillance automatisée avec NPM: Configurer le NPM pour surveiller les modifications de fichiers et déclencher automatiquement des tâches (par exemple, minification), reproduire les fonctionnalités du grognement ou de gorgée avec une configuration plus simple.

Travailler avec les scripts NPM:

Créez un répertoire de projet ("buildTool"), accédez à lui et initialisez

en utilisant package.json: npm init

$ mkdir ~/buildtool && cd ~/buildtool
$ npm init
Répondez aux invites ou sautez-les; Vous remplacerez le contenu

par: package.json

{
  "name": "buildtool",
  "version": "1.0.0",
  "description": "npm as a build tool",
  "dependencies": {},
  "devDependencies": {},
  "scripts": {
    "info": "echo 'npm as a build tool'"
  },
  "author": "SitePoint",
  "license": "ISC"
}
L'objet

définit les commandes. Liste des scripts disponibles avec scripts. Exécutez un script spécifique (par exemple, "info") à l'aide de npm run. Le npm run info Flag Sitiné Sortie NPM. -s

Implémentation de workflows communs:

Tout d'abord, ajoutons la lignée javascript à l'aide de jshint:

$ npm install jshint --save-dev
Créer la structure du répertoire de projet:

├── assets
│   ├── css
│   │   └── main.css
│   └── scripts
│       └── main.js
├── dist
├── package.json
├── node_modules
└── test
    └── test.js

(sur les systèmes Unix, utilisez ) mkdir -p assets/css assets/scripts test && touch assets/css/main.css assets/scripts/main.js test/test.js

line:

Ajoutez du code à

(avec des erreurs intentionnelles): main.js

"use strict";

var Author = new function(name){
  this.name = name || "Anonymous";
  this.articles = new Array();
}

Author.prototype.writeArticle = function(title){
  this.articles.push(title);
};

Author.prototype.listArticles = function(){
  return this.name + " has written: " + this.articles.join(", ");
};

exports.Author = Author;

var peter = new Author("Peter");
peter.writeArticle("A Beginners Guide to npm");
peter.writeArticle("Using npm as a build tool");
peter.listArticles();
Mise à jour

pour inclure un script de peluche: package.json

"scripts": {
  "info": "echo 'npm as a build tool'",
  "lint": "echo '=> linting' && jshint assets/scripts/*.js"
}
Exécutez

pour peindre le code. Corrigez les erreurs et redémarrez pour vérifier. npm run lint -s

Tests (en utilisant mocha):

Installez Mocha:

npm install mocha --save-dev
Créer des tests simples dans

: test.js

$ mkdir ~/buildtool && cd ~/buildtool
$ npm init

Ajoutez un script de test à package.json:

{
  "name": "buildtool",
  "version": "1.0.0",
  "description": "npm as a build tool",
  "dependencies": {},
  "devDependencies": {},
  "scripts": {
    "info": "echo 'npm as a build tool'"
  },
  "author": "SitePoint",
  "license": "ISC"
}

Run npm test -s.

PRE et POST HOWS:

Pour exécuter le libellé avant les tests, ajoutez un pretest crochet:

$ npm install jshint --save-dev

Maintenant, npm test -s exécutera d'abord le script de peluche.

Minification du code:

installer uglify-js et clean-css:

├── assets
│   ├── css
│   │   └── main.css
│   └── scripts
│       └── main.js
├── dist
├── package.json
├── node_modules
└── test
    └── test.js

Créer des scripts de minification dans package.json:

"use strict";

var Author = new function(name){
  this.name = name || "Anonymous";
  this.articles = new Array();
}

Author.prototype.writeArticle = function(title){
  this.articles.push(title);
};

Author.prototype.listArticles = function(){
  return this.name + " has written: " + this.articles.join(", ");
};

exports.Author = Author;

var peter = new Author("Peter");
peter.writeArticle("A Beginners Guide to npm");
peter.writeArticle("Using npm as a build tool");
peter.listArticles();

Run npm run minify:js -s et npm run minify:css -s.

Recherche pour les changements (en utilisant watch):

installer watch:

"scripts": {
  "info": "echo 'npm as a build tool'",
  "lint": "echo '=> linting' && jshint assets/scripts/*.js"
}

Ajouter un script de montre:

npm install mocha --save-dev

Exécutez npm run watch pour minimer automatiquement les modifications du fichier.

Build Script:

combiner les scripts en un seul build script:

var assert = require("assert");
var Author = require("../assets/scripts/main.js").Author;

// ... (test code) ...

Run npm run build -s.

script serveur (en utilisant http-server):

installer http-server:

"scripts": {
  // ...
  "test": "echo '=> testing' && mocha test/"
}

Ajouter un script de serveur:

"scripts": {
  // ...
  "pretest": "npm run lint -s"
}

Run npm run server.

Conclusion:

NPM offre une alternative puissante et flexible aux outils de construction dédiés. Envisagez d'abord d'utiliser le NPM avant de recourir au grognement ou à gloquer pour des projets plus simples. La section FAQ ci-dessous fournit des clarifications supplémentaires.

(le reste de l'entrée d'origine, y compris les FAQ, est omis ici par concision, car il s'agit principalement d'une répétition de concepts déjà expliqués ci-dessus. La fonctionnalité et les exemples de base ont été préservés.)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Javascript et le web: fonctionnalité de base et cas d'utilisationJavascript et le web: fonctionnalité de base et cas d'utilisationApr 18, 2025 am 12:19 AM

Les principales utilisations de JavaScript dans le développement Web incluent l'interaction client, la vérification du formulaire et la communication asynchrone. 1) Mise à jour du contenu dynamique et interaction utilisateur via les opérations DOM; 2) La vérification du client est effectuée avant que l'utilisateur ne soumette les données pour améliorer l'expérience utilisateur; 3) La communication de rafraîchissement avec le serveur est réalisée via la technologie AJAX.

Comprendre le moteur JavaScript: détails de l'implémentationComprendre le moteur JavaScript: détails de l'implémentationApr 17, 2025 am 12:05 AM

Comprendre le fonctionnement du moteur JavaScript en interne est important pour les développeurs car il aide à écrire du code plus efficace et à comprendre les goulots d'étranglement des performances et les stratégies d'optimisation. 1) Le flux de travail du moteur comprend trois étapes: analyse, compilation et exécution; 2) Pendant le processus d'exécution, le moteur effectuera une optimisation dynamique, comme le cache en ligne et les classes cachées; 3) Les meilleures pratiques comprennent l'évitement des variables globales, l'optimisation des boucles, l'utilisation de const et de locations et d'éviter une utilisation excessive des fermetures.

Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisationPython vs JavaScript: la courbe d'apprentissage et la facilité d'utilisationApr 16, 2025 am 12:12 AM

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Python vs JavaScript: communauté, bibliothèques et ressourcesPython vs JavaScript: communauté, bibliothèques et ressourcesApr 15, 2025 am 12:16 AM

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

De C / C à JavaScript: comment tout cela fonctionneDe C / C à JavaScript: comment tout cela fonctionneApr 14, 2025 am 12:05 AM

Le passage de C / C à JavaScript nécessite de s'adapter à la frappe dynamique, à la collecte des ordures et à la programmation asynchrone. 1) C / C est un langage dactylographié statiquement qui nécessite une gestion manuelle de la mémoire, tandis que JavaScript est dynamiquement typé et que la collecte des déchets est automatiquement traitée. 2) C / C doit être compilé en code machine, tandis que JavaScript est une langue interprétée. 3) JavaScript introduit des concepts tels que les fermetures, les chaînes de prototypes et la promesse, ce qui améliore la flexibilité et les capacités de programmation asynchrones.

Moteurs JavaScript: comparaison des implémentationsMoteurs JavaScript: comparaison des implémentationsApr 13, 2025 am 12:05 AM

Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

Au-delà du navigateur: Javascript dans le monde réelAu-delà du navigateur: Javascript dans le monde réelApr 12, 2025 am 12:06 AM

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

Construire une application SaaS multi-locataire avec next.js (intégration backend)Construire une application SaaS multi-locataire avec next.js (intégration backend)Apr 11, 2025 am 08:23 AM

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.