如何从grunt任务函数运行终端命令

时间:2017-10-23 18:09:45

标签: javascript node.js gruntjs

我正在尝试根据我grunt.registerTask('setAppIcon', 'Task that sets the app icon', function(environment) { if (environment.toLowerCase() == "development") { grunt.task.run(['exec:command:cd app/lib/extras/res/icon/ios/dev && cp -a . ../']); } else if (environment.toLowerCase() == "staging") { grunt.task.run(['exec:command:cd app/lib/extras/res/icon/ios/staging && cp -a . ../']); } }); 内部的功能在我的应用目录中移动一些图标。可以这样做吗?我已经尝试了以下(进入开发或暂存文件夹并将所有文件复制到上一个目录),但是不能让它工作。提前谢谢。

{{1}}

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,最后我使用了shelljs

我所要做的就是去我的应用程序的根目录,运行以下shell命令用npm:npm install -g shelljs安装它并修改我的脚本看起来像这样

< p>

// Script to have environment specific icon
    grunt.registerTask('setAppIcon', 'Task that sets the app icon', function() {
        var env = grunt.option('env');
        var shell = require('shelljs');
    if (env.toLowerCase() === "development") {

        shell.exec('cd app/lib/extras/res/icon/ios/dev && cp -a . ../');

    } else if (env.toLowerCase() === "staging") {

        shell.exec('cd app/lib/extras/res/icon/ios/staging && cp -a . ../');

    } else if (env.toLowerCase() === "production") {

        shell.exec('cd app/lib/extras/res/icon/ios/prod && cp -a . ../');
    }
});