Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

build-img não funciona

Ao tentar executar o comando:

npm run gulp build-img

A seguinte mensagem de erro está sendo exibida no terminal:

[22:05:52] Using gulpfile ~\Desktop\projeto\gulpfile.js
[22:05:52] Starting 'build-img'...
[22:05:52] Finished 'build-img' after 50 ms
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: EPERM: operation not permitted, open 'C:\Users\Desktop\projeto\src\img\Thumbs.db at Error (native)

npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "gulp" "build-img"
npm ERR! node v6.10.3
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! projeto@1.0.0 gulp: `gulp "build-img"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the projeto@1.0.0 gulp script 'gulp "build-img"'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the projeto package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     gulp "build-img"
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs projeto
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls projeto
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\Desktop\projeto\npm-debug.log

Arquivo package.json:

{
  "name": "projeto",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "gulp": "gulp"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "gulp": "^3.9.1",
    "gulp-imagemin": "^3.2.0"
  },
  "dependencies": {
    "gulp": "^3.9.0",
    "gulp-imagemin": "^3.2.0",
    "imagemin-gifsicle": "^5.1.0"
  },
  "description": ""
}

Arquivo gulpifile.js:

var gulp = require('gulp'),
    imagemin = require('gulp-imagemin');

gulp.task('build-img', function(){
    gulp.src('src/img/**/*')
    .pipe(imagemin())
    .pipe(gulp.dest('src/img'));    
});

OBS: Precisei instalar o imagemin-gifsicle pois estava dando erro dizendo que o mesmo não estava instalado.

Será que alguém consegue me ajudar?

5 respostas

Olá, Anibal. Tudo bom?

Tenho dois chutes. :-)

Pode ser um erro de permissão na pasta img, se for isso tente rodar o gulp como adiministrador.

O arquivo Thumbs.db existe na pasta de imagens? Se sim e ele não for útil, por favor remova ele.

Olá Marcelo, td bem!

Tentei as duas coisas, mas infelizmente não funcionaram. Executei o cmd como admin e o arquivo Thumbs.db é um arquivo de sistema. Tentei acessá-lo pelo caminho C:\Users\.......\img\Thumbs.db, mas ele é um arquivo de sistema e todo criptografado. Apaguei ele, mas quando executei o comando npm run gulp build-img ele foi gerado novamente e não consegui executar o build-img no terminal.

solução!

Então, você pode roubar. Ignora o arquivos assim:

gulp.src(['src/img/**/*', '!src/img/**/Thumbs.db'])

Veja que sua task agora recebe um array com dois elementos. No segundo, há a negação do arquivo.

Aguardo seu feedback.

Ola Flávio, td bem?

Agora deu certo!!!! \o/

E agora ficou até claro, como estou usando uma task p tratar imagens ele deu erro no arquivo que não era uma imagem :-) e como agora foi ignorado funcionou. Mas como não conhecia essa 'alternativa' não estava conseguindo executar a task.

Muito obrigado pela ajuda. Me ajudou muito!!!

Aí sim! Sucesso e bom estudo Aníbal!