Автоматическая ссылка на локальные файлы *.js и *.css в index.html с помощью grunt

Я намерен разработать клиент angularJS, в котором я буду использовать угловые компоненты. Это приведет к нескольким файлам .js /.css. Чтобы не ссылаться вручную на каждый вновь добавленный файл js / css, я намерен использовать задачу grunt-include-source.

Проблема заключается в том, что после настройки Gruntfile.js запускается задача "grunt includeSource", возвращая статус "Готово, без ошибок", но в файле index.html обновление не производится.

Моя структура проекта представлена ​​на картинке (я использую WebStorm как IDE). Структура проекта

Мой файл index.html выглядит следующим образом:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>RavenApp</title>
    <!-- include: "type": "css", "files": "*.css" -->
</head>
<body>
    <!-- bower:js -->
    <script src="../bower_components/angular/angular.js"></script>
    <script src="../bower_components/angular-route/angular-route.js"></script>
    <script src="../bower_components/angular-sanitize/angular-sanitize.js"></script>
    <script src="../bower_components/angular-mocks/angular-mocks.js"></script>
    <script src="../bower_components/jquery/dist/jquery.js"></script>
    <script src="../bower_components/underscore/underscore.js"></script>
    <!-- endbower -->

    <!-- include: "type": "js", "files": "*.js" -->
</body>
</html>

Мой Gruntfile.js выглядит следующим образом:

module.exports = function (grunt) {
    grunt.loadNpmTasks('grunt-wiredep');
    grunt.loadNpmTasks('grunt-include-source');

    grunt.initConfig({
        wiredep: {
            target: {
                src: 'app/index.html'
            }
        },
        includeSource: {
            options: {
                basePath: 'app',
                templates: {
                    html: {
                        js: '<script src="{filePath}"></script>',
                        css: '<link rel="stylesheet" type="text/css" href="{filePath}" />'
                    }
                },
                app: {
                    files: {
                        'app/index.html': 'app/index.html'
                    }
                }
            }
        }
    });
};

Может ли кто-нибудь указать мне, что я сделал не так? Спасибо.

1 ответ

Нам не нужно писать ключ шаблонов в ключе includeSource:

module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-wiredep');
grunt.loadNpmTasks('grunt-include-source');

grunt.initConfig({
    wiredep: {
        target: {
            src: 'app/index.html'
        }
    },
    includeSource: {
        options: {
            basePath: 'app',                
            app: {
                files: {
                    'app/index.html': 'app/index.html'
                }
            }
        }
    }
});
};

HTML кода достаточно для включения js и css:

 <!-- include: "type": "css", "files": "*.css" -->
 <!-- include: "type": "js", "files": "*.js" -->
Другие вопросы по тегам