在Makefile中使用SED将用yarn生成的文件名替换为哈希

时间:2018-07-24 11:04:02

标签: sed makefile yarnpkg

我在Makefile中使用yarn build命令,该命令会生成两个包含哈希值的文件,例如main.abc123.jsmain.def456.css

这些文件需要从HTML文件中引用,因此我尝试使整个过程自动化。我的Makefile中的相关部分是:

build-da:
    yarn build

    $(eval JS_FILE:=$(shell python -c 'import json, os; config=json.load(open("build/asset-manifest.json")); print(os.path.basename(config["main.js"]))'))
    $(eval CSS_FILE:=$(shell python -c 'import json, os; config=json.load(open("build/asset-manifest.json")); print(os.path.basename(config["main.css"]))'))

    $(SED) -i -e 's/main\.[^.]*\.js/$(JS_FILE)/g' my_file.html
    $(SED) -i -e 's/main\.[^.]*\.css/$(CSS_FILE)/g' my_file.html

基本上,我要从asset-manifest.json抓取生成的文件名,并尝试使用sed替换html文件中的名称。

在大约80-90%的情况下,它可以很好地工作,但是有时它会无故失败,因此,我试图找出问题所在。

0 个答案:

没有答案