Получение «включает в себя не функцию» в глотке

#gulp

Вопрос:

Я новичок в Глотании. Я написал функцию для анализа версии в своем package.json файле следующим образом

 // Get the semver part of the version, e.g.,
// version = 1.4.31-p2, should return 1.4.31
function getSemVer(cb) {
  var semVer = pkg.version;
  if (semVer.includes("-")) {
    semVer = semVer.split("-")[0];
  }
  console.log(semVer);
  cb();
}
exports.getSemVer = getSemver
 

Но когда я запускаю это, я получаю ошибку

 $ gulp getSemver -f gulpfiles/version.js
[22:56:58] Working directory changed to /path/gulpfiles
[22:56:59] Using gulpfile /path/gulpfiles/version.js
[22:56:59] Starting 'getSemVer'...
[22:56:59] 'getSemVer' errored after 1.53 ms
[22:56:59] TypeError: semVer.includes is not a function
    at getSemVer (/path/gulpfiles/version.js:27:14)
    at taskWrapper (/path/node_modules/undertaker/lib/set-task.js:13:15)
    at bound (node:domain:416:15)
    at runBound (node:domain:427:12)
    at asyncRunner (/path/node_modules/async-done/index.js:55:18)
    at processTicksAndRejections (node:internal/process/task_queues:78:11)
 

Я думал includes() , что допустимая функция JavaScript, показанная в строке JavaScript, включает(). Что это дает?

Комментарии:

1. Который node.js версию вы используете? Node.js начал поддержку String.prototype.includes с версии 4.0.0 .

2. Вы — снова — используете переменную внутри своей функции, которая кажется неопределенной: pkg .

3. Это неполный пример, но он где-то определен, иначе я бы получил эту ошибку.

4. node -v дает v16.2.0 , так что да, это должно быть там?