我最近读了一篇关于生成更改日志的article,我想将它集成到package.json脚本中。
我使用正确的项目名称稍微改变了文章中的脚本,并将输出导出到CHANGELOG.md
"scripts": {
"generateChangelog": "git log --pretty=format:'<li> <a href=\"http://git.egt-interactive.com/frontend-games/temporary-test-project/commit/%H\">view commit •</a> %s</li> ' --reverse > CHANGELOG.md"
},
但是当我运行它时,我有以下错误:
< was unexpected at this time. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] generateChangelog: `git log --pretty=format:'<li> <a href="http://git.egt-interactive.com/frontend-games/temporary-test-project/commit/%H">view commit •</a> %s</li> ' --reverse > CHANGELOG.md` npm ERR! Exit status 1
我认为这是逃避的事情,但我找不到它。
很高兴得到一些帮助。提前致谢
编辑
我正在使用Windows,默认情况下,我使用的是Powershell,但我也尝试用cmd运行npm run generateChangelog
脚本(都失败了)
但是,如果我直接在shell中运行相同的git log...
命令,它可以工作:
git log --pretty=format:'<li> <a href=\"http://git.egt-interactive.com/frontend-games/temporary-test-project/commit/%H\">view commit •</a> %s</li> ' --reverse > CHANGELOG.md`
我认为这是逃避的事情,但我找不到它。
是的,你是对的,这是一个逃避问题。
将package.json的generateChangelog
部分中名为scripts
的脚本更改为以下内容:
"scripts": {
"generateChangelog": "git log --pretty=format:\"<li> <a href=\\\"http://git.egt-interactive.com/frontend-games/temporary-test-project/commit/%H\\\">view commit •</a> %s</li> \" --reverse > CHANGELOG.md"
},
请注意更改:
'
)已被JSON转义双引号(\"
)取代\"
)已被替换为(\\\"
)git log --pretty=format:\"<li> <a href=\\\"http://git.egt-interactive.com/frontend-games/temporary-test-project/commit/%H\\\">view commit •</a> %s</li>\" --reverse > CHANGELOG.md
^^ ^^^^ ^^^^ ^^
运行$ npm run generateChangelog
现在应该通过以下方式成功运行: