npm run script <意外

问题描述 投票:1回答:1

我最近读了一篇关于生成更改日志的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 &bull;</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 &bull;</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 &bull;</a> %s</li> ' --reverse > CHANGELOG.md`
javascript npm escaping package.json npm-scripts
1个回答
1
投票

我认为这是逃避的事情,但我找不到它。

是的,你是对的,这是一个逃避问题。

将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 &bull;</a> %s</li> \" --reverse > CHANGELOG.md"
},

请注意更改:

  • 单引号(')已被JSON转义双引号(\")取代
  • JSON转义双引号(\")已被替换为(\\\"
git log --pretty=format:\"<li> <a href=\\\"http://git.egt-interactive.com/frontend-games/temporary-test-project/commit/%H\\\">view commit &bull;</a> %s</li>\" --reverse > CHANGELOG.md
                        ^^             ^^^^                                                                              ^^^^                               ^^

运行$ npm run generateChangelog现在应该通过以下方式成功运行:

  • Windows Powershell
  • Windows命令提示符(cmd.exe)
  • Windows Git Bash
  • * Nix命令行工具
© www.soinside.com 2019 - 2024. All rights reserved.