npm 运行 script < 出乎意料
npm run script < was unexpected
我最近阅读了一篇关于生成变更日志的 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! temporary-test-project@1.0.0 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
脚本(均失败)
但是,如果我 运行 相同的 git log...
命令直接在 shell 中运行:
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`
I think it's something with the escaping, but I can't find it.
是的,你是对的,这是一个转义问题。
将 package.json 的 scripts
部分中名为 generateChangelog
的脚本更改为以下内容:
"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 转义双引号 (\"
)
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
现在应该 运行 成功通过:
- Windows Powershell
- Windows 命令提示符 (cmd.exe)
- Windows Git Bash
- *Nix 命令行工具
我最近阅读了一篇关于生成变更日志的 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! temporary-test-project@1.0.0 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
脚本(均失败)
但是,如果我 运行 相同的 git log...
命令直接在 shell 中运行:
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`
I think it's something with the escaping, but I can't find it.
是的,你是对的,这是一个转义问题。
将 package.json 的 scripts
部分中名为 generateChangelog
的脚本更改为以下内容:
"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 转义双引号 (\"
)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
现在应该 运行 成功通过:
- Windows Powershell
- Windows 命令提示符 (cmd.exe)
- Windows Git Bash
- *Nix 命令行工具