ddale
@ddale
Front-end developer

Как правильно пользоваться NPM пакетом grunt-aws?

Нужно настроить выгрузку кода на удаленный сервер, который крутится на Amazon.

Что сделал:
1) Добавил пакет в package.json
2) Установил пакет с помощью команды npm install
3) Настроил конфиг Grunt'а
4) Запустил Grunt

Настроил так:
aws: grunt.file.readJSON("aws-credentials.json"),
s3: {
    options: {
        accessKeyId: "<%= aws.accessKeyId %>",
        secretAccessKey: "<%= aws.secretAccessKey %>",
        bucket: "my-awesome-bucket"
    },
    build: {
        cwd: "public/",
        src: "**"
    }
}

grunt.loadNpmTasks('grunt-aws');

grunt.registerTask('default', ['aws']);


Выдает ошибку
Warning: Task "aws" not found. Use --force to continue.


Почему и что делать?
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
ddale
@ddale Автор вопроса
Front-end developer
Короткое описание.

От Amazon вы получаете accessKeyId и secretAccessKey, которые записываете в отдельный файл. Далее добавляете название и версию пакета в package.json, далее добавляете необходимые описания и вызовы в gruntfile.js , ставите пакет, запускаете Grunt.

1) Добавляем в package.json
"grunt-aws" : "latest"

2) Создаем файл credentials.json рядом с package.json и gruntfile.js
{
	"accessKeyId": "Здесь ID",
	"secretAccessKey": "Здесь ключ"
}


3) Добавляем в gruntfile.js
// package.json
pkg: grunt.file.readJSON('package.json'),

// Переменные каталогов проекта
project: {
    app:    ['public'],
    assets: ['<%= project.app %>/assets'],
},

// Проталкивание файлов на S3
aws: grunt.file.readJSON("credentials.json"),
s3: {
    options: {
        accessKeyId: "<%= aws.accessKeyId %>",
        secretAccessKey: "<%= aws.secretAccessKey %>",
        bucket: "имя-каталога-куда-лить"
    },
    upload: {
        headers: {
            CacheControl: 604800
            // Expires: new Date(Date.now() + 604800000).toUTCString()
        },
        cwd: ".",
        src: [
            "<%= project.app %>/*.html",
            "<%= project.app %>/dist/**",
            "<%= project.assets %>/fonts/**",
            "<%= project.assets %>/img/*"
        ]
    }
},

// Загрузка предварительно установленного модуля
grunt.loadNpmTasks('grunt-aws');

// Задания будут выполнятся сразу после команды grunt
grunt.registerTask('default', [ 's3']);


4) Открываем терминал, переходим в каталог с проектом и выполняем две команды
npm install
grunt
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы