是否有任何好的教程整合咕嚕與螞蟻?我們目前的版本使用ant,因爲我們是一家Java商店。然而,前端開始成爲頭等公民,我們正在研究使用node和grunt來進行前端構建。我需要將前端構建與ant構建集成。我需要知道如何規範所有我的自定義任務的退出代碼以及內置的grunt任務,並在咕嚕任務被ant調用時將控制檯輸出限制爲這些預定義的代碼。任何幫助將不勝感激。整合咕嚕與螞蟻
整合咕嚕與螞蟻
回答
Grunt可以調用命令行,因此您可以輕鬆地在grunt中創建幾個任務,除了通過shell執行一個ant任務外什麼也不做。
的grunt-shell
庫使它特別容易從繁重的任務,執行外部命令:https://github.com/sindresorhus/grunt-shell
既然你在談論的自定義退出代碼,不過,你很有可能要結束了寫自己的自定義咕嚕任務執行shell命令,然後查看響應代碼(可能使用grunt.helpers.spawn
幫助程序):https://github.com/gruntjs/grunt/blob/master/docs/api_utils.md#gruntutilsspawn
我的建議是?我的organization recently went through the same thing,如果可能的話,最好儘量徹底擺脫螞蟻,徹底擺脫與JavaScript相關的項目。
Grunt有這樣一個越來越有用的插件庫,如果你不能複製你的ant構建文件並創建一個100%javascript解決方案,我會感到驚訝。
您可以使用http://abc.tools.qafoo.com/其中包括NPM模塊* 1)
,那麼你唯一需要的是一個自定義的目標,如:
…
<target
name="-mm:compile:main~hooked"
extensionOf="-compile:main~hook"
depends="
-my-compile-npm-hook
"
>
<target
name="-my-compile-npm-hook"
>
<echo>install local grunt-cli</echo>
<antcall target="npm:install">
<param name="in.npm.package.name" value="grunt-cli" />
</antcall>
</target>
…
之後,你可能會遇到在.npm/node_modules/.bin/
目錄別名咕嚕${npm.local.modulesdir}/.bin/
^^不會錯過包括或src/main/resources/extensions/npm/npm.properties
* 1)定義屬性:unfortunatly buggy與當前的node.js版本
您可以使用此宏:
<macrodef name="exec-node">
<attribute name="module" description="The name of the NodeJS module to execute"/>
<attribute name="failonerror" default="true" description="Fail if the exit code is not 0"/>
<element name="args" implicit="yes" description="Argument to pass to the exec task"/>
<sequential>
<exec executable="cmd.exe" failonerror="@{failonerror}" osfamily="winnt">
<arg line="/c @{module}" />
<args/>
<!-- Windows cmd output workaround: http://stackoverflow.com/a/10359327/227349 -->
<!-- Forces node's stderror and stdout to a temporary file -->
<arg line=" > _tempfile.out 2<&1"/>
<!-- If command exits with an error, then output the temporary file -->
<!-- to stdout delete the temporary file and finally exit with error level 1 -->
<!-- so that the apply task can catch the error if @failonerror="true" -->
<arg line=" || (type _tempfile.out & del _tempfile.out & exit /b 1)"/>
<!-- Otherwise, just type the temporary file and delete it-->
<arg line=" & type _tempfile.out & del _tempfile.out &"/>
</exec>
<exec executable="@{module}" failonerror="@{failonerror}" osfamily="unix">
<args/>
</exec>
</sequential>
</macrodef>
而且你可以調用任何命令:例如:
<target name="jshint">
<exec-node module="grunt">
<arg value="jshint" />
</exec-node>
</target>
的作品就像一個魅力:也保證了標準錯誤還印,這是一種常見調用grunt時出現問題。
- 1. 整合svnant與螞蟻1.6和svnclient1.7
- 2. 與咕嚕
- 3. 咕嚕:咕嚕轂不看
- 4. 與咕嚕 - 薩斯
- 5. 咕嚕livereload與WordPress
- 6. 與螞蟻JARring
- 7. 如何整合螞蟻設計和arangodb?
- 8. 咕嚕:運行咕嚕-GH-頁
- 9. 如何使用SVG與咕嚕咕嚕和玉
- 10. 熱運行咕嚕服務與咕嚕-永遠
- 11. 設置與螞蟻
- 12. 建築與螞蟻
- 13. 未能與螞蟻
- 14. 與咕嚕量角器
- 15. 版本控制與咕嚕
- 16. 咕嚕配置與參數
- 17. 螞蟻合並結構
- 18. 如何咕嚕
- 19. Debowerify不咕嚕
- 20. 咕嚕力看?
- 21. 在咕嚕
- 22. 的咕嚕
- 23. 螞蟻
- 24. 螞蟻
- 25. 構建步驟:「調用螞蟻」與「從shell運行螞蟻」
- 26. 使用xjc與螞蟻
- 27. NoClassDefFoundError的運行與螞蟻
- 28. 迭代通過與螞蟻
- 29. ftp任務與螞蟻
- 30. 與螞蟻的Flex SDK
我也在Java商店,這是一個很難賣。雖然前端對我們而言也越來越重要,但我們不太可能將JS用作服務器端代碼的構建語言。更現實的方法似乎是通過自定義的ant任務調用grunt。另一方面,我沒有看到有人這樣做,所以... – carbontax