这是我的.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上
答案 0 :(得分:0)
我非常确定Bower不会支持这个命令。看看this issue。它似乎只适用于像gulp postInstall
这样的小命令。原因似乎是制作了一些assumptions about the command。
我认为解决方法是将其写入bash脚本,然后运行此bash脚本。因此将此'postInstall.sh'
保存为可执行的perms,然后将.bowerrc更改为postInstall 'postInstall: ./postInstall.sh'