使用grunt-exec的新行的奇怪行为

时间:2015-06-14 01:32:32

标签: macos bash terminal gruntjs imagemagick

我正在使用ImageMagick和grunt-exec为我正在使用ImageMagick documentation中的命令工作的网站生成图标。

convert image.png  -bordercolor white -border 0 \
      \( -clone 0 -resize 16x16 \) \
      \( -clone 0 -resize 32x32 \) \
      \( -clone 0 -resize 48x48 \) \
      \( -clone 0 -resize 64x64 \) \
      -delete 0 -alpha off -colors 256 favicon.ico

但是我遇到了一些换行问题,我认为这部分是因为我不完全明白应该用换行符做什么。

在我Gruntfile.js我目前没有使用换行符,它按预期工作。请注意,我必须删除所有换行符并双重转义括号,因为显然grunt-exec在执行它之前会解析该字符串。

exec: {
    favicon: 'convert _favicon.svg -bordercolor white -border 0 \\( -clone 0 -resize 16x16 \\) \\( -clone 0 -resize 32x32 \\) \\( -clone 0 -resize 48x48 \\) \\( -clone 0 -resize 64x64 \\) -delete 0 -alpha off -colors 256 favicon.ico'
}

就像我说的那样,我现在正在使用它,但是我希望能够使用换行符来提高可读性,同时也因为我想完全理解这里发生了什么。到目前为止,我已经尝试添加额外的\并将所有内容保持不变,将新行替换为\n\\n并将所有内容放在同一行但没有运气。

2 个答案:

答案 0 :(得分:0)

我正在寻找的解决方案是使用\n\来换行,例如:

convert image.png  -bordercolor white -border 0 \n\
    \( -clone 0 -resize 16x16 \) \n\
    \( -clone 0 -resize 32x32 \) \n\
    \( -clone 0 -resize 48x48 \) \n\
    \( -clone 0 -resize 64x64 \) \n\
    -delete 0 -alpha off -colors 256 favicon.ico

答案 1 :(得分:-1)

尝试使用:

exec: {
    favicon: 'convert _favicon.svg -bordercolor white -border 0 "( -clone 0 -resize 16x16 )" "( -clone 0 -resize 32x32 )" "( -clone 0 -resize 48x48 )" "( -clone 0 -resize 64x64 )" -delete 0 -alpha off -colors 256 favicon.ico'
}