通过Ant执行的Grunt命令的输出略有损坏

我有以下的Ant build.xml脚本,运行npm install然后grunt(这是一个概念validation,以检查我们是否可以通过Ant将grunt集成到我们的产品中,作为权宜之计,直到我们可以添加集成支持):

<project name="GruntTest" default="buildGrunt"> <description>Run Grunt as a test</description> <!-- ************************************************************** --> <!-- buildDemo : define the sequence of programs to be executed --> <!-- ************************************************************** --> <target name="buildGrunt" depends="runNpm"> <exec executable="cmd"> <arg value="/c grunt"/> </exec> </target> <target name="runNpm" depends="copySourceToTarget"> <exec executable="cmd"> <arg value="/c npm install"/> </exec> </target> <!-- ************************************************************** --> <!-- Copy all 'txt' files from the source to the target --> <!-- end rename the extension to 'text' --> <!-- ************************************************************** --> <target name="copySourceToTarget"> <copy todir="${target}" includeEmptyDirs="true"> <fileset dir="${source}" includes="*.*"/> </copy> <copy todir="${target}/src/test" includeEmptyDirs="true"> <fileset dir="${source}/src/test" includes="*.*"/> </copy> <copy todir="${target}/src/server" includeEmptyDirs="true"> <fileset dir="${source}/src/server" includes="*.*"/> </copy> </target> </project> 

这是Gruntfile.js脚本:

 module.exports = function (grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n', }, build: { src: 'src/server/<%= pkg.name %>.js', dest: 'build/<%= pkg.name %>.min.js' } }, nodeunit: { all: ['src/test/*_test.js'] } }); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-nodeunit'); grunt.loadNpmTasks('grunt-contrib-jshint'); // Default task(s). grunt.registerTask('default', ['uglify', 'nodeunit']); }; 

当从VScodeterminal执行时,这提供了以下输出到控制台:

 copySourceToTarget: [copy] Copying 8 files to E:\ikan\alm\webtest_environments\vs_code\CONTBUILD\BUILD\target\181 [copy] Copied 1 empty directory to 1 empty directory under E:\ikan\alm\webtest_environments\vs_code\CONTBUILD\BUILD\target\181 [copy] Copying 1 file to E:\ikan\alm\webtest_environments\vs_code\CONTBUILD\BUILD\target\181\src\test [copy] Copying 1 file to E:\ikan\alm\webtest_environments\vs_code\CONTBUILD\BUILD\target\181\src\server runNpm: [exec] added 630 packages in 23.676s [exec] npm WARN VSCode-Workspace@1.0.0 No repository field. [exec] buildGrunt: [exec] Running "uglify:build" (uglify) task [exec] >> 1 file created 293 B â†' 255 B [exec] [exec] Running "nodeunit:all" (nodeunit) task [exec] Testing server_test.js..OK [exec] >> 3 assertions passed (8ms) [exec] [exec] Done. BUILD SUCCESSFUL Total time: 27 seconds 

如果我直接运行grunt,它会提供以下输出:

 Running "uglify:build" (uglify) task >> 1 file created 293 B → 255 B Running "nodeunit:all" (nodeunit) task Testing server_test.js..OK >> 3 assertions passed (8ms) 

完成。

正如你所看到的,uglify任务有一个在grunt命令中正确显示的箭头,但是当它输出到ant输出时,它显示为B ÔåÆ ,这不是我想要的。 我不确定是什么原因造成的,可能与我的控制台编码有关,但是我不知道。

有没有办法使箭头正确显示?