Dans nodejs, l'archiveur est utilisé pour compresser et conditionner certains fichiers dans des packages compressés au format zip ou tar ; l'archiveur est un module qui peut implémenter des fonctions d'empaquetage sur toutes les plates-formes. Les formats d'empaquetage sont zip et tar. Vous pouvez utiliser l'archiveur d'installation npm. " Déclaration Installez ce module avant utilisation.
L'environnement d'exploitation de cet article : système Windows 10, nodejs version 12.19.0, ordinateur Dell G3.
Parfois, nous devons compresser et conditionner certains fichiers dans des packages compressés au format zip ou tar, et nous pouvons également avoir besoin de conditionner des répertoires. Dans Node.js, vous pouvez utiliser l'archiveur de packages tiers pour effectuer des opérations.
Archiver est un module qui peut réaliser une fonction d'empaquetage multiplateforme dans nodejs. Il peut créer des packages zip et tar. Il s'agit d'un module tiers relativement facile à utiliser.
Installez le module d'archives avant utilisation.
Le code est le suivant :
npm installer l'archiveurIntroduction:
// Puisque le fichier doit être lu, le module fs est requis et const fs = require('fs'); const archiver = require('archiver');L'utilisation de base est la suivante :
// La première étape, importez les modules nécessaires const fs = require('fs'); const archiver = require('archiver'); // La deuxième étape, créez un flux inscriptible pour écrire les données const output = fs.createWriteStream ( __dirname + "/hello.zip");// Enregistrez le package compressé dans le répertoire du projet en cours et le package compressé est nommé test.zipconst archive = archiver('zip', {zlib: {level: 9}} ) ;//Définir le niveau de compression//La troisième étape consiste à établir une connexion pipeline archive.pipe(output);//La quatrième étape consiste à compresser le fichier spécifié var stream = fs.createReadStream(__dirname + "/hello. txt");// Lire hello.txtarchive.append(stream, {name: 'hello.txt'});//La cinquième étape consiste à terminer la compression archive.finalize();Une fois le code exécuté avec succès, un package compressé nommé hello.zip sera généré dans le répertoire où se trouve le projet. Le package compressé contient le fichier compressé hello.txt.
Les fichiers compressés peuvent être exploités en utilisant archive.append() et archive.file().
L'API pour compresser un seul fichier est la suivante :
//Ajoutez un fichier au package compressé et lisez les données via un flux inscriptible. Const file1 = __dirname + '/file1.txt';archive.append(fs.createReadStream(file1), { name: 'file1.txt ' } );//Ajoutez un fichier au package compressé et ajoutez le fichier en écrivant la chaîne dans le fichier archive.append('string cheese!', { name: 'file2.txt' });//Ajoutez un fichier à compresser package, ajoutez le fichier via Buffer data const buffer3 = Buffer.from('buff it!');archive.append(buffer3, { name: 'file3.txt' });// Ajoutez un fichier au package compressé package, transmettre directement le chemin du fichier archive.file('file1.txt', { name: 'file4.txt' });L'exemple complet est le suivant :
// La première étape, importez les modules nécessaires const fs = require('fs'); const archiver = require('archiver'); // La deuxième étape, créez un flux inscriptible pour écrire les données const output = fs.createWriteStream ( __dirname + "/hello.zip");// Enregistrez le package compressé dans le répertoire du projet en cours et le package compressé est nommé test.zipconst archive = archiver('zip', {zlib: {level: 9}} ) ;//Définir le niveau de compression//La troisième étape consiste à établir une connexion pipeline archive.pipe(output);//La quatrième étape consiste à compresser le fichier spécifié archive.append(fs.createReadStream(__dirname + '/hello .txt'), { nom : 'hello.txt'});//Flux de fichiers archive.append('index.html', {nom : 'index.html'});//Chemin du fichier archive.append(Buffer .from("Ceci est des données au format Buffer"), {nom : 'buffer.txt'});// Objet tampon archive.append("Transmettre directement la chaîne", {nom : 'string.txt'}) ;// String/ / La cinquième étape consiste à terminer la compression archive.finalize();Remarque : Le deuxième paramètre {name : 'hello.txt'} de archive.append() consiste à renommer le fichier correspondant dans le package compressé.
Si vous souhaitez compresser plusieurs fichiers, appelez simplement la méthode archive.append() pour ajouter des fichiers. Ces fichiers supplémentaires seront ajoutés au package compressé. Par exemple:
// La première étape, importez les modules nécessaires const fs = require('fs'); const archiver = require('archiver'); // La deuxième étape, créez un flux inscriptible pour écrire les données const output = fs.createWriteStream ( __dirname + "/hello.zip");// Enregistrez le package compressé dans le répertoire du projet en cours et le package compressé est nommé test.zipconst archive = archiver('zip', {zlib: {level: 9}} ) ;//Définir le niveau de compression//La troisième étape consiste à établir une connexion pipeline archive.pipe(output);//La quatrième étape consiste à compresser plusieurs fichiers dans un package compressé archive.append('index.html', {nom : ' index.html'});archive.append('hello.js', {nom : 'hello.js'});archive.append('hello.html', {nom : 'hello.html' });archive .append('db.json', {name: 'db.json'});// La cinquième étape consiste à terminer la compression archive.finalize();Si vous souhaitez compresser un répertoire, vous devez utiliser archive.directory() pour le faire. L'API est la suivante :
// Emballez et compressez le répertoire spécifié dans un package compressé, puis renommez-le en nouveau-sous-répertoire, et tous les fichiers du répertoire sous-répertoire sont toujours dans le répertoire nouveau-sous-répertoire, pas dans le répertoire racine du package compressé archive.directory( 'subdir /', 'new-subdir');// Regroupez et compressez tous les fichiers du répertoire spécifié dans un package compressé, et ces fichiers se trouvent dans le répertoire racine du package compressé, pas dans le sous-répertoire archive.directory(' sous-répertoire/', faux);L'exemple complet est le suivant :
// La première étape, importez les modules nécessaires const fs = require('fs'); const archiver = require('archiver'); // La deuxième étape, créez un flux inscriptible pour écrire les données const output = fs.createWriteStream ( __dirname + "/hello.zip");// Enregistrez le package compressé dans le répertoire du projet en cours et le package compressé est nommé test.zipconst archive = archiver('zip', {zlib: {level: 9}} ) ;//Définir le niveau de compression//La troisième étape consiste à établir une connexion pipeline archive.pipe(output);//La quatrième étape consiste à compresser le répertoire dans un package compressé archive.directory('public/', ' new-public'); archive.directory('demo/', false);// La cinquième étape consiste à terminer la compression archive.finalize();Apprentissage recommandé : "tutoriel vidéo nodejs"
Ce qui précède explique en détail comment utiliser l'archiveur dans nodejs. Pour plus d'informations, veuillez prêter attention aux autres articles connexes sur ce site !