无法在我的.bowerrc脚本

时间:2015-12-07 22:03:25

标签: macos bower

这是我的.bowerrc

{
  "directory": "vendor/assets/bower",
  "scripts": {
    "postinstall": "find ./vendor/assets/bower -name '*.html' -print0 | xargs -0 sed -i '' -E -e 's/href=\"https?:\\/\\//href=\"\\/\\//g'"
  }
}

这假设用href="https://替换href="//的所有实例。我这样做是为了修复我的构建系统的错误。

我收到此错误:

bower postinstall   find ./vendor/assets/bower -name '*.html' -print0 | xargs -0 sed -i '' -E -e 's/href="https?:\/\//href="\/\//g'
bower postinstall   find: [object Object]: unknown primary or operator
bower ECMDERR       Failed to execute "find ./vendor/assets/bower -name *.html -print0 [object Object] xargs -0 sed -i  -E -e s/href="https?:\/\//href="\/\//g", exit code of #1 find: [object Object]: unknown primary or operator

Additional error details:
find: [object Object]: unknown primary or operator

为什么管道字符转换为[object Object]?如何运行命令?

我尝试在|

前添加转义斜杠
"postinstall": "find ./vendor/assets/bower -name '*.html' -print0 \\| xargs -0 sed -i '' -E -e 's/href=\"https?:\\/\\//href=\"\\/\\//g'"

现在我得到了:

bower ECMDERR       Failed to execute "find ./vendor/assets/bower -name *.html -print0 | xargs -0 sed -i  -E -e s/href="https?:\/\//href="\/\//g", exit code of #1 find: |: unknown primary or operator

我在OSX 10.10.5上

1 个答案:

答案 0 :(得分:0)

我非常确定Bower不会支持这个命令。看看this issue。它似乎只适用于像gulp postInstall这样的小命令。原因似乎是制作了一些assumptions about the command

我认为解决方法是将其写入bash脚本,然后运行此bash脚本。因此将此'postInstall.sh'保存为可执行的perms,然后将.bowerrc更改为postInstall 'postInstall: ./postInstall.sh'