我想创建一个ANT任务,允许在我的项目中执行bower更新。
我写了这个目标:
<target name="update-static-web-dependecy" description="Update static web dependency">
<exec dir="${static-web.dir}" executable="/usr/local/bin/bower">
<arg value="update"/>
</exec>
</target>
但是当我要运行它时,我得到了这个错误:
env: node: No such file or directory
结果:127
在我的操作系统中,使用参数g -g正确安装了Bower,如果我从shell启动它,它会正常工作。
有人能帮帮我吗?
问候,洛伦佐
我猜您可以通过在exec
块中的env
元素中指定到节点的路径来解析。像这样
<property name="node.dir" value="/usr/local/bin"/>
<exec dir="${static-web.dir}" executable="/usr/local/bin/bower">
<env key="PATH" value="${env.PATH}:${node.dir}"/>
<arg value="update"/>
</exec>
对于任何想要在php中完成此操作的人来说,它稍微不那么复杂,但是Ant的答案可能会让您感到困惑。如果你知道鲍尔在哪里,你可以一次完成所有的工作:
<exec command="/usr/bin/bower install" dir="${dirs.httpdocs}" />
如果你正在做一些通用的事情,你可以检查是否存在bower。json:
<!-- bower exists -->
<property name="bowerExists" value="false" />
<exec command="if [ -f '${dirs.httpdocs}/bower.json' ]; then echo 'true'; else echo 'false'; fi;"
outputProperty="bowerExists" />
<if>
<equals arg1="${bowerExists}" arg2="true" />
<then>
<echo>Installing Bower Packages</echo>
<exec command="/usr/bin/bower install" dir="${dirs.httpdocs}" />
</then>
</if>
来源:http://www.szabogabor.net/how-to-check-in-phing-if-a-file-or-directory-exists/