Использование переменных в Gruntfile.js - PullRequest
0 голосов
/ 24 октября 2018

У меня есть Gruntfile.js, где У меня есть строка, которую я повторяю много раз .Поэтому я решил продолжить с переменной, поэтому я ввел var file_path.

module.exports = function(grunt) {

    'use strict';

    var today = new Date();
    var year  = today.getFullYear();

    var file_path = 'here/there/';

    grunt.initConfig({

        jshint: {
            all: [
                '<%= file_path %>/assets/js/app.js',
                '<%= file_path %>/admin/assets/js/admin.js',
            ]
        },

    });

    require('load-grunt-tasks')(grunt);

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

};

Но это не работает.Выдает следующую ошибку:

Running "jshint:all" (jshint) task
Warning: An error occurred while processing a template (file_path is not defined). Use --force to continue.

Когда я изменил <%= file_path %> на <%= this.file_path %>, процесс запускается, но путине решен.

Running "jshint:all" (jshint) task
>> 0 files linted. Please check your ignored files.

С другими зарегистрированными задачами подтверждено, что No source files were found..

КСТАТИ Iвключил year в другую задачу, которая работает нормально.Прикрепленный снимок экрана:

Variable Year in Gruntfile

Итак, я попробовал тот же синтаксис в задаче jshint, как показано ниже:

all: [
    file_path +  'assets/js/app.js',
    file_path +  'admin/assets/js/admin.js',
]

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

Однако я попробовал следующий файл console.log, снаружи из grunt.initConfig():

grunt.log.write(file_path + 'assets/js/app.js');

Этоотображение правильного составного пути к файлу: here/there/assets/js/app.js.

Как включить переменные в Gruntfile?

1 Ответ

0 голосов
/ 24 октября 2018

Если вы хотите использовать Строки шаблона , например:

all: [
    '<%= file_path %>/assets/js/app.js',
    '<%= file_path %>/admin/assets/js/admin.js',
]

Затем настройте Gruntfile.js на следующее:

module.exports = function(grunt) {

    'use strict';

    var today = new Date();
    var year  = today.getFullYear();

    grunt.initConfig({
        file_path: 'here/there', 
        //                    ^-- Note: there is no trailing forward slash.

        jshint: {
            all: [
                '<%= file_path %>/assets/js/app.js',
                '<%= file_path %>/admin/assets/js/admin.js',
            ]
        }

    });

    require('load-grunt-tasks')(grunt);

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

};
...