了解Makefile

在查看项目时,发现一些项目尤其后端项目有个Makefile文件,这样一些构建命令可以方便的封装调用。

之前没了解过该工具,这里mark下。

特点

  1. Mac/Linux天然支持,这样声明创建后,直接执行即可
    • shell文件的话,还需手动增加执行权限chmod +x *.sh
    • 项目中使用nodejs实现构建工具也行,但是毕竟还有环境依赖
  2. 支持变量传参

举个例子

1
2
3
# 构建前端镜像 make build version=1.0.0
build:
docker build -t stacker/web:v$(version) .

比如封装如上命令到Makefile,以后想打包新镜像文件,直接make build version=1.0.0即可

语法说明

  • 文件名推荐为Makefile,但也可以是makefile
  • 只支持单行注释
  • @开头命令声明,表示该命令输出结果不打印

常见错误

Makefile:5: *** missing separator. Stop.

命令前面是锁进,不要用空格

https://static.1991421.cn/2022/2022-11-29-000144.jpeg

参考配置

  1. https://gitlab.com/gnachman/iterm2/-/blob/master/Makefile
  2. https://github.com/jcsalterego/pngpaste/blob/master/Makefile