Thursday, March 21, 2024

Error (ESLint) i.CLIEngine is not a constructor in Visual Studio 2019

To correct the ESLint error 'i.CLIEngine is not a constructor' in Visual Studio 2019 with ESLint version 8.57.0, you can follow these steps:


1. Navigate to the following file path and open the file in a text editor: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\ServiceHub\Services\TypeScriptLintingService\TypeScriptLintingService.all.js. It is recommended to create a backup of the original file before proceeding.


2. Locate the function e.prototype.eslint within the file and replace it with the following code:


e.prototype.eslint = function(e) {

return new Promise(async (resolve) => {

try {

var config = JSON.parse(e);

var ESLintModule = this.dynamicRequire(config.linterPath + n.sep + "node_modules" + n.sep + "eslint");

var results = [];


if (ESLintModule.ESLint) {

var options = {

cwd: config.projectRoot,

resolvePluginsRelativeTo: config.linterPath

};


var eslintInstance = new ESLintModule.ESLint(options);

results = await eslintInstance.lintText(config.fileContents, { filePath: config.fileName });

} else {

var optionsLegacy = {

cwd: config.projectRoot,

ignorePattern: ["wwwroot/lib/**", "**/node_modules/**", "**/bower_components/**", "**/jspm_packages/**"],

resolvePluginsRelativeTo: config.linterPath

};


if (config.parserPath) {

optionsLegacy.parser = config.parserPath;

}


results = new ESLintModule.CLIEngine(optionsLegacy).executeOnText(config.fileContents, config.fileName).results;

}


var report = results[0];

if (report) {

report.messages.forEach(this.addRuleIdToParseError);

var validMessages = report.messages.filter((message) => message.ruleId != null);

validMessages.forEach(this.addLocationInfoFromSourceCode);

resolve({ lintMessages: validMessages });

} else {

resolve({});

}

} catch (error) {

resolve({ errorMessage: error.message });

}

});

}


3. After making the changes, save the file and restart Visual Studio to apply the update.


Permission error when running "Power Platform Backup Environment" in Azure DevOps

 When we run action "Power Platform Backup Environment" in Azure Devops with an App Registration account, we get the error "P...