я использую классы, чтобы сделать мой код немного проще в управлении, однако я получаю сообщение об ошибке:
TypeError: Невозможно прочитать «настройки» свойства undefined
Когда я запускаю серию задач, вот так:
exports.push = series(git.remote, git.add, git.commit, git.push);
В моем gulpfile.js Я создал экземпляр этого класса и передал парудругих экземпляров классов, которые содержат соответствующие данные.
gulpfile.js
/**
* Clear Console
*/
process.stdout.write('\033c');
/**
* Require plugins
*/
const chalk = require('chalk');
const log = require('fancy-log');
const { series } = require('gulp');
/**
* Require includes
*/
const settings = require('./includes/settings.js');
const theme = require('./includes/theme.js');
const git = require('./includes/git.js')(theme, settings);
/**
* Main tasks
*/
exports.default = (cb) => {
log(chalk.bgRed('Please run a task, a list has been provided below.'));
// dump out tasks here
cb();
};
exports.push = series(git.remote, git.add, git.commit, git.push);
exports.get = git.get;
/**
* Task descriptions
* @type {string}
*/
exports.push.description = 'Push the modified theme files to the repository, or create a repository if it doesn\'t exist.';
exports.get.description = 'Pull down a theme\'s repository, ensure to add the --theme flag and the theme name.';
Ниже приведен раздел кода, который вызывает проблемы, я прав, предполагая, что gulp не использует мой экземпляр Git
класс и вместо создания нового экземпляра?Если да, то как я могу решить эту проблему?
git.js
class Git
{
constructor(theme, settings) {
this.theme = theme;
this.settings = settings;
this.init();
}
remote(done) {
git.addRemote('origin', this.settings.get('git_url') + this.theme.folder + '.git', function (err) {
if (err) {
if (err.message.indexOf('remote origin already exists' > -1)) {
log(chalk.bgYellow.black('Remote already exists, skipping...'));
} else {
console.log(err);
}
}
});
done();
}
При дальнейшей проверке у меня нет доступа к свойствам конструкторакогда этот метод запускается через серию gulp ...
Или, если задача выполняется до начальной настройки в верхней части gulpfile.js ?Что не представляется возможным, так как для узла сначала потребуется файл.