Как запустить команду терминала из функции задачи grunt

1

Я пытаюсь переместить некоторые значки в свой каталог приложений на основе функции, которая есть внутри моего Gruntfile.js. Можно ли сделать что-то подобное? Я пробовал следующее (переход в dev или промежуточную папку и копирование всех файлов в предыдущий каталог), но coudn't заставить его работать. Заранее спасибо.

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 . ../']);

        } 
    });
Теги:
gruntjs

1 ответ

0

Я нашел решение, я закончил использование shelljs.

Все, что мне нужно было сделать, это перейти в корневую директорию приложения, запустите следующую команду оболочки, чтобы установить ее с помощью npm: npm install -g shelljs и изменить мой скрипт, чтобы посмотреть что-то вроде этого

// 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 . ../');
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню