unable tutorial serve instalar grunt javascript gruntjs

javascript - tutorial - npm grunt



¿Qué hace la opción "expandir" en grunt-contrib-copy? Todos los ejemplos lo usan pero los documentos no dicen nada sobre lo que hace (2)

Como expand es una parte de Grunt, y no específica para grunt-contrib-copy, la información sobre esto se puede encontrar en la API de configuración de archivos de Grunt :

Establecer expand a true para habilitar las siguientes opciones:

  • cwd Todas las coincidencias src son relativas a (pero no incluyen) esta ruta.
  • src Patrón (s) para hacer coincidir, en relación con el cwd .
  • dest Prefijo de ruta de destino.
  • ext Reemplace cualquier extensión existente con este valor en las rutas de dest generadas.
  • extDot Se usa para indicar dónde se encuentra el período que indica la extensión. Puede tomar ''first'' (la extensión comienza después del primer período en el nombre del archivo) o ''last'' (la extensión comienza después del último período), y se configura de manera predeterminada como ''first'' .
  • flatten Elimina todas las partes de camino de las rutas de dest generadas.
  • rename Se llama a esta función para cada archivo src coincidente, (después del renombrado y aplanamiento de la extensión). El dest y la ruta src coincidente se pasan, y esta función debe devolver un nuevo valor dest . Si el mismo dest se devuelve más de una vez, cada src que lo utilizó se agregará a una matriz de fuentes para él.

Además, parece que dest siempre se considerará un directorio de destino si la configuración se expand a true .

  1. Aquí está el archivo README y ejemplos: https://github.com/gruntjs/grunt-contrib-copy/blob/master/README.md .
  2. Aquí está la parte relevante del código (que aparentemente no puedo entender) de https://github.com/gruntjs/grunt-contrib-copy/blob/master/tasks/copy.js :

module.exports = function(grunt) { ''use strict''; var path = require(''path''); grunt.registerMultiTask(''copy'', ''Copy files.'', function() { var kindOf = grunt.util.kindOf; var options = this.options({ processContent: false, processContentExclude: [] }); var copyOptions = { process: options.processContent, noProcess: options.processContentExclude }; grunt.verbose.writeflags(options, ''Options''); var dest; var isExpandedPair; var tally = { dirs: 0, files: 0 }; this.files.forEach(function(filePair) { isExpandedPair = filePair.orig.expand || false; filePair.src.forEach(function(src) { if (detectDestType(filePair.dest) === ''directory'') { dest = (isExpandedPair) ? filePair.dest : unixifyPath(path.join(filePair.dest, src)); } else { dest = filePair.dest; } if (grunt.file.isDir(src)) { grunt.verbose.writeln(''Creating '' + dest.cyan); grunt.file.mkdir(dest); tally.dirs++; } else { grunt.verbose.writeln(''Copying '' + src.cyan + '' -> '' + dest.cyan); grunt.file.copy(src, dest, copyOptions); tally.files++; } }); });


Expandir le permite especificar si desea crear la ruta de destino completa (por ejemplo: /path/missing1/missing2 ), o solo crea el último directorio cuando su principal existe ( /path/existing/missing ).