重命名dist目录后Gulp仍自动生成该目录的问题求助
嘿,我懂你这糟心的状况——明明把生产构建的dist目录改了名,结果跑npm run build时,新目录和原来的dist目录居然一起冒出来了,换谁都会挠头。既然你已经排查过gulpfile.babel.js和config.yml,那咱们换几个方向找找根源:
排查Foundation依赖包的内置配置:Zurb Foundation的Gulp模板可能把部分默认配置藏在了依赖包里,比如
node_modules/foundation-sites/gulp/路径下的文件。有些插件(比如gulp-dest、清理类插件)可能硬编码了dist作为输出路径,你可以用命令行搜一下整个依赖包的dist字符串:grep -r "dist" ./node_modules/foundation-sites/说不定能找到被你忽略的默认配置项。
检查package.json的scripts细节:打开
package.json看看build命令具体执行了什么,会不会除了调用gulp,还额外触发了其他内置脚本?比如有些项目会用foundation build这类命令,它可能自带默认的dist输出路径。拆解gulp任务的依赖链:很多Foundation的Gulp模板会把任务拆分到
gulp/tasks/子目录里,别只盯着主gulpfile.babel.js。你可以逐个检查子任务文件,看看有没有某个任务里偷偷写了gulp.dest('dist'),或者依赖的任务里指定了dist目录。清理缓存与旧构建文件:有时候旧的构建缓存会搞出奇怪的问题,你可以先彻底清理掉生成的目录和依赖缓存,再重新安装依赖试试:
rm -rf dist 你的新目录名 npm cache clean --force rm -rf node_modules package-lock.json npm install npm run build检查环境变量配置:有些项目会用环境变量指定构建目录,比如
process.env.BUILD_DIR,你可以看看项目里有没有.env文件,或者gulpfile里的环境配置部分,是不是默认把这个变量设成了dist。
如果还是找不到问题,你可以把package.json的scripts部分,还有关键的gulp任务代码片段贴出来,这样更容易精准定位~
内容的提问来源于stack exchange,提问作者Labanino

