gulp生成图片的路径难道一旦确定就不能改变了?

发布于 2021-11-29 04:25:01 字数 474 浏览 937 评论 9

第一次用gulp压缩图片club-pic时是生成在cover的img目录下,后来发现这图是公用的,就把生成路径改到了common目录下,并重命名为club01-pic,可是图片文件还是会生成到原来的路径之下。我看了下控制台,输出路径确实写的是common,不明白为什么会出现这个错误,望大神指导~~下面附上几张或许能够帮到你们的图~



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

小情绪 2021-12-02 14:37:29

我试着把common和index这两个文件夹都移动到others的上一级目录(即src目录下),再一次执行gulp,从json文件显示的内容发现js和css文件的路径会跟着变化,而png和jpg文件的路径不会跟着变化(这个有需要的话可以截图)......这让我疑惑难道gulp能够记录下上次操作过的图片文件的相关信息?

为你鎻心 2021-12-02 14:25:14

说错了,在json文件中看到的是,common文件夹在mobile目录下,那么这个就跟我之前的操作无关了,mobile目录下一直都只有dist、html和src三个子目录~

贱贱哒 2021-12-02 13:21:07

如图所示,common文件夹和index文件夹都在others目录下,但从json文件中看到的则是,common在src目录下,index文件夹才是在others目录下。(这个或许跟我之前把common文件夹从src目录下移动到others目录下的操作有关)。

海之角 2021-12-02 12:55:47

苍暮颜 2021-12-02 12:27:28

倾城泪 2021-12-02 11:03:47

感谢你多次抽空为我解答,文字表达上有点拙,在下方补上了一张图片,或许能够更加清楚地表达我的疑惑。感觉就好像是gulp记住了这个文件的目录位置,在下次操作时检测到同样的一个文件(即使它的复制的)就会生成到它上一次生成的那个目录中~

陌若浮生 2021-12-02 08:30:31

目前对这个问题的处理方式是,修改一下这张图片,比如svg图中多打个空格,jpg图尺寸弄大一点点,再次放进去后就可以正常地生成到指定路径。 感谢指正参数注释。

网名女生简单气质 2021-12-02 07:40:05

可是我将输出路径打印出来,确实是我想要的,可是实际生成的文件却不在这个路径上~~类似的情况还有,就是用rev生成的json文件中记录的文件路径,十分诡异,令我摸不着头脑...我下边附个图说明下情况,感谢你~

女中豪杰 2021-12-01 17:20:11

给的图没到点上。

你的 src 目录结构是如何的,dist 目录结构是如何的?

theSrc 和 theDst 分别是什么(图里很难分辨)?

你希望 src 里面的什么位置的图生成到 dist 的里面的什么位置(图中有两个 common,无法分辨你描述的是哪一个)?

目录上的问题建议详细阅读 Gulp 关于目录部分的描述:https://github.com/gulpjs/gulp/blob/master/docs/API.md#optionsbase,应该对你有所帮助。

PS: imagemin 参数注释有错, progressive 是无损地把 jpg 格式转为能渐进加载的形式,不是压缩。

---

我模拟了你的操作,没有发生你描述的情况,问题还是很可能在于你传递的目录有点问题。顺便匹配目录应该用 **

gulpfile.js:

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

gulp.task('default', function (callback) {
  return gulp.src('src/**/*.jpg')
    .pipe(imagemin({
      progressive: true,
    }))
    .pipe(gulp.dest('dist'));
});

初始状态:

src
└── a
    └── t.jpg

执行一次 gulp 之后:

src                                                                                                  
└── a                                                                                                
    └── t.jpg                                                                                        
dist                                                                                                 
└── a                                                                                                
    └── t.jpg

src 中复制 t.jpg 到另一目录:

src
├── a
│   └── t.jpg
└── b
    └── t.jpg
dist
└── a
    └── t.jpg

执行一次 gulp:

src
├── a
│   └── t.jpg
└── b
    └── t.jpg
dist
├── a
│   └── t.jpg
└── b
    └── t.jpg

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文