Flutter执行flutter build web时如何将自定义文件复制到build输出目录
Flutter构建web时自动复制自定义文件的配置方法
方案1:优先检查默认行为
- Flutter执行
flutter build web命令时,默认会将[Project-dir]/web目录下的所有文件、子目录完整复制到[Project-dir]/build/web构建输出目录,通常不需要额外配置。 - 你可以先执行一次构建命令,直接查看
build/web目录是否已经存在script.py文件,若存在可直接使用。
方案2:自定义构建脚本(默认行为不生效时使用)
如果因为Flutter版本差异、自定义过滤规则导致文件没有被自动复制,可以写一键构建脚本,将构建和复制操作合并:
Windows系统(Powershell脚本)
在项目根目录新建build_web.ps1文件,写入以下内容:
flutter build web Copy-Item "./web/script.py" -Destination "./build/web/script.py"
后续构建时在终端执行.\build_web.ps1即可。
macOS/Linux系统(Shell脚本)
在项目根目录新建build_web.sh文件,写入以下内容:
#!/bin/bash flutter build web cp ./web/script.py ./build/web/script.py
先给脚本添加执行权限:chmod +x build_web.sh
后续构建时在终端执行./build_web.sh即可。
VSCode快速触发配置(可选)
如果你希望在VSCode中一键触发带自动复制的构建流程,可以修改.vscode/tasks.json配置:
- 打开项目下的
.vscode/tasks.json文件(没有就新建),添加以下配置:
{ "version": "2.0.0", "tasks": [ { "label": "flutter-build-web", "type": "shell", // Windows系统把&&后的cp命令替换为Copy-Item "./web/script.py" -Destination "./build/web/script.py" "command": "flutter build web && cp ./web/script.py ./build/web/script.py", "group": { "kind": "build", "isDefault": true } } ] }
后续按快捷键Ctrl+Shift+B(Windows/Linux)/Command+Shift+B(macOS)即可直接触发构建。
内容的提问来源于stack exchange,提问作者rrswa
相关产品推荐
相关产品推荐

