serve instalar grunt javascript gruntjs

javascript - instalar - install grunt windows



Los plugins de Grunt no están instalados en la ubicación actual (5)

Estoy trabajando con Mac OS X 10.7.5 y estoy usando Grunt para concatenar algunos archivos js y minimizarlos. Ahora quiero minimizar también mis archivos css. Como ronco no proporciona ninguna funcionalidad, quería instalar un plugin grunt para eso. De acuerdo con las instrucciones, tengo que hacer un cd en la carpeta raíz de mi proyecto e instalar el complemento con npm. Entonces hice lo siguiente:

cd <PROJECT_ROOT> npm install grunt-contrib-css

Las instrucciones para el complemento están aquí: https://npmjs.org/package/grunt-contrib-mincss . Abrí mi archivo grunt.js y agregué

grunt.loadNpmTasks(''grunt-contrib-mincss'');

Pero cuando trato de correr gruñir, solo obtengo

Local Npm module "grunt-contrib-mincss" not found. Is it installed? <WARN> Task "mincss" not found. Use --force to continue. </WARN>

La instalación funciona sin ningún problema y npm ls no enumera el módulo.

¿Alguna idea de lo que hice mal? ¡Muchas gracias!

ACTUALIZADO

Cuando participo en un proyecto como este

cd ~/Sites/path/to/project

y luego instala el complemento

sudo npm install grunt-contrib-mincss

el módulo está realmente instalado en

~/node_modules/grunt-contrib-mincss

Pude copiar los archivos en el directorio raíz de mi proyecto (que funciona), pero es un poco extraño ¿no?

ACTUALIZACIÓN 2 He actualizado el nodo y lo intenté nuevamente. Debajo está la salida de la consola.

me:~ Fritz$ node -v v0.8.10 me:~ Fritz$ npm -v 1.1.62 me:~ Fritz$ mkdir ./Sites/npm-test me:~ Fritz$ cd ./Sites/npm-test/ me:npm-test Fritz$ sudo npm install grunt-contrib-mincss Password: npm http GET https://registry.npmjs.org/grunt-contrib-mincss npm http 304 https://registry.npmjs.org/grunt-contrib-mincss npm http GET https://registry.npmjs.org/gzip-js npm http GET https://registry.npmjs.org/clean-css npm http GET https://registry.npmjs.org/grunt-contrib-lib npm http 304 https://registry.npmjs.org/gzip-js npm http 304 https://registry.npmjs.org/clean-css npm http 304 https://registry.npmjs.org/grunt-contrib-lib npm http GET https://registry.npmjs.org/crc32 npm http GET https://registry.npmjs.org/deflate-js npm http GET https://registry.npmjs.org/optimist npm http 304 https://registry.npmjs.org/deflate-js npm http 304 https://registry.npmjs.org/crc32 npm http 304 https://registry.npmjs.org/optimist npm http GET https://registry.npmjs.org/wordwrap npm http 304 https://registry.npmjs.org/wordwrap [email protected] ../../node_modules/grunt-contrib-mincss ├── [email protected] ├── [email protected] ([email protected], [email protected]) └── [email protected] ([email protected])

¿Por qué el plugin está instalado afuera? ¿O hay una forma de definir la ubicación real donde está instalado?


En mi caso, olvidé agregar:

grunt.loadNpmTasks(''grunt-jsdoc-plugin'');

a grunt.js, por lo que debería verse así:

module.exports = function(grunt) { // Project configuration. grunt.initConfig({ jsdoc : { dist : { src: [''frontend/js/**/*.js''], dest: ''docs/frontend'' } } }); grunt.loadNpmTasks(''grunt-jsdoc-plugin''); };


Esta forma de instalar funcionó para mí:

  1. cd <PROJECT_ROOT> .
  2. Ejecute npm install grunt-contrib-mincss .
  3. Archivo de prueba creado en el directorio actual con el siguiente contenido de prueba:

    module.exports = function(grunt) { grunt.initConfig({ mincss: { compress: { files: { "path/to/output.css": ["path/to/input_one.css", "path/to/input_two.css"] } } } }); grunt.loadNpmTasks(''grunt-contrib-mincss''); grunt.registerTask(''default'', ''mincss''); };

  4. Mi estructura de directorios se ve así en este momento (compruebe esto, si algunos archivos no están allí o en alguna otra carpeta, entonces puede ser una razón por la que no funciona):

    <PROJECT_ROOT> / node_modules / grunt-contrib-mincss/ grunt.js

  5. Ejecutar grunt en la terminal.

Script funcionó.

Posibles razones por las que no funcionó en su caso:

  1. Instaló el plugin globalmente (con el argumento -g).
  2. Lo instaló en alguna subcarpeta (grunt.js y node_modules deben estar en la misma carpeta).

Compruébelo por favor.


He visto casos en los que no había un package.json archivo package.json presente provocó que los módulos se instalaran globalmente. No estoy seguro de qué versión se estaba ejecutando en ese momento, ya que no era mi máquina.

La próxima vez intente ejecutar npm init antes de instalar los módulos. Después de eso, instale usando npm install grunt-contrib-css --save para que se agregue a su archivo package.json . También puede usar --save-dev para que se agregue a sus devDependencies.


Si echas un vistazo debajo de la carpeta grunt-contrib-mincss, hay un archivo Léame, cambiaron el nombre de grunt- contrib - mincss a grunt- contrib - cssmin .

de todos modos, no es tu (y la mía) falla. XD


Tuve un problema similar en Ubuntu 12.04 para el módulo grunt-jasmine-task (el mismo mensaje de error que el anterior). Esto resolvió el problema para mí:

  1. Cree manualmente la carpeta node_modules en la raíz del proyecto.
  2. Ejecute npm install grunt-jasmine-task nuevamente.