2016-12-05 3 views
0

вот мой gruntfile.jsЗадача «по умолчанию» не найдена. Используйте -force для продолжения. Отменено в связи с предупреждениями

var fs = require("fs"), 
 
    browserify = require("browserify"), 
 
    pkg = require("./package.json"); 
 

 
module.exports = function(grunt) { 
 
    grunt.initConfig({ 
 
    mochaTest: { 
 
     test: { 
 
     options: { 
 
      style: 'bdd', 
 
      reporter: 'spec' 
 
     }, 
 
     src: ['test/unit/*.js'] 
 
     } 
 
    }, 
 
    pkg: grunt.file.readJSON('package.json'), 
 
    uglify: { 
 
     options: { 
 
     banner: "/*\n" + grunt.file.read('LICENSE') + "*/" 
 
     }, 
 
     dist: { 
 
     files: { 
 
      '<%=pkg.name%>-<%=pkg.version%>.min.js': ['<%=pkg.name%>-<%=pkg.version%>.js'] 
 
     } 
 
     } 
 
    } 
 
    }); 
 

 
    grunt.registerTask('build', 'build a browser file', function() { 
 
    var done = this.async(); 
 

 
    var outfile = './brain-' + pkg.version + '.js'; 
 

 
    var bundle = browserify('./browser.js').bundle(function(err, src) { 
 
     console.log("> " + outfile); 
 

 
     // prepend license 
 
     var license = fs.readFileSync("./LICENSE"); 
 
     src = "/*\n" + license + "*/" + src; 
 

 
     // write out the browser file 
 
     fs.writeFileSync(outfile, src); 
 
     done(); 
 
    }); 
 
    }); 
 
    grunt.registerTask('test', 'mochaTest'); 
 

 
    grunt.loadNpmTasks('grunt-mocha-test'); 
 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 
 
};

Когда я просто запустить хрюкать в терминале - вот ошибка

Предупреждение: Задача «по умолчанию» не найденный. Используйте -force для продолжения. Прервано из-за предупреждений.

После добавления --force показывает:

Предупреждение: Задача "по умолчанию" не найдено. Используется --force, продолжая. Выполнено, но с предупреждениями.

+0

Вам необходимо зарегистрировать задачу под названием «по умолчанию». Не регистрируя его, grunt не знает, что все задачи выполнять (по умолчанию), когда выполняется команда «grunt». –

+0

Спасибо, друг. Но я новичок, не могли бы вы показать мне, как я могу это сделать. – Inzimam

ответ

0

Прежде всего, необходимо понять, как ворчание команды работы

  1. вы определяете/зарегистрировать задачу в вашем Gruntfile.js
  2. Thenyou называет эту задачу из командной строки

От Вашего Ниже приведено задание, зарегистрированное задание

grunt.registerTask('build', 'build a browser file', function() { 
    var done = this.async(); 

    var outfile = './brain-' + pkg.version + '.js'; 

    var bundle = browserify('./browser.js').bundle(function(err, src) { 
     console.log("> " + outfile); 

     // prepend license 
     var license = fs.readFileSync("./LICENSE"); 
     src = "/*\n" + license + "*/" + src; 

     // write out the browser file 
     fs.writeFileSync(outfile, src); 
     done(); 
    }); 
    }); 

, вы можете вызвать эту задачу, позвонив grunt build, который будет выполнять эту задачу. И когда вы только запускаете grunt, он ищет задачу, имя которой default

Как и в вашем файле grunt, задача по умолчанию не определена, если вы не выполняете команду.

+0

Спасибо, хорошее объяснение. Я добавляю по умолчанию вместо сборки, теперь он запускается только из команды grunt, но после запуска, как я могу открыть ее в браузере. – Inzimam

+0

Напишите задачу, которая сделает это. находить и печатать статический сервер, который будет запускать ваш код в браузере –

+0

в последней части кода, который он показывает, // выписывает файл браузера. Можете ли вы сказать, что он запустит код в браузере? – Inzimam

0

В вашем файле grunt нет задачи «по умолчанию». Вы пытаетесь запустить задачу сборки?

Если это так, замените эту строку:

grunt.registerTask('build', 'build a browser file', function() { ...

С этой линией

grunt.registerTask('default', 'build a browser file', function() { ...

+0

Выполнение задания по умолчанию > ./brain-0.7.0.js Выполнено без ошибок. Спасибо, но как я могу открыть это сейчас из своего браузера. – Inzimam

0

Задачи должны быть зарегистрированы в крякнул, прежде чем они могут быть выполнены.

Вы зарегистрировали задачу сборки в вашем ворчанием

grunt.registerTask('build', 'build a browser file', function() { 
    var done = this.async(); 

    var outfile = './brain-' + pkg.version + '.js'; 

    var bundle = browserify('./browser.js').bundle(function(err, src) { 
     console.log("> " + outfile); 

     // prepend license 
     var license = fs.readFileSync("./LICENSE"); 
     src = "/*\n" + license + "*/" + src; 

     // write out the browser file 
     fs.writeFileSync(outfile, src); 
     done(); 
    }); 
    }); 

Это может быть выполнено под названием grunt build.

Когда вы выполняете grunt, по умолчанию он ищет задачу с именем default, которая должна быть зарегистрирована.

Таким образом, зарегистрировать default задачи (так же как и задачу сборки)

grunt.registerTask('default', 'Executed default task', function() { 
    ... 
}); 

Вы также можете передать третий параметр как массив зарегистрированных задач, так что это будет выполняться при запуске grunt.

grunt.registerTask('default', 'Executed default task', [ 
    'task1', 
    'task4', 
    'task3', 
]); 

Теперь, когда вы выполняете grunt, все эти задачи будут выполняться последовательно.

Обратите внимание, что каждая задача в массиве задач должна быть зарегистрирована с использованием grunt.registerTask.

+0

Спасибо. Где я могу добавить номер порта для локального сервера в мой файл grunt? – Inzimam

+0

Извините, я не понял. Почему вы хотите, чтобы ваш локальный сервер дошел до файла grunt? –

+0

Я хочу запустить приложение в браузере, где я буду добавлять номер порта, чтобы его можно было найти в моем браузере? – Inzimam

0

Вы забыли добавить задачу по умолчанию.

добавьте следующую строку после "grunt.registerTask ('test', 'mochaTest');" линия.

grunt.registerTask('default', ['test', 'build']); 

Эта задача будет запускать как «тест», так и «сборка». при запуске «хрюкать» без каких-либо аргументов.

Для получения более подробной информации обратитесь к grunt document on task.

+0

Спасибо, но как я могу запустить это в браузере, поскольку номер порта не указан в файле grunt. Извините, если я не понимаю смысла, поскольку я новичок в хрюкать. – Inzimam

+0

вы используете [grunt-serve] (https://www.npmjs.com/package/grunt-serve). Он будет обслуживать файл для вас. Это по умолчанию порт «9000» – SafeHouse

+0

да, но это будет после запуска этой сборки. Я могу использовать build, и он работает, но как я могу запустить его, чтобы я мог получить доступ к нему на порту 9000. Я не могу связаться с ним на 9000 после использования команды grunt build. – Inzimam

Смежные вопросы