documentationjs / documentationjs/documentation

Cannot read property 'parseExtension' of undefined

Open
#869 6 comments 0 reactions 1 assignee Claimed by @anthony-redFox View on GitHub
enhancement
Dominant language
JavaScript
Stars
5.8k
Forks
481
PR merge metrics
No merged PRs in 30d

Description

First of all thx for this great library, I've been using it with no problems for the past few months however since upgrading to the latest version I'm running into an error.

I'm using documentation version `5.1.1` installed as an npm module. But when I try to run
`node generate-docs.js` (see file content of generate-docs below)

I'm getting the following error:

`Cannot read property 'parseExtension' of undefined`

The error happens in `documentation/lib/merge_config.js` at `line 72` where the `config` passed into the `mergeConfig` function is undefined.

I've had the script working on an older version where instead of the returned promise documentation.build() was using callback functions. I've tried to search stackoverflow but documentation is not the easiest search term :) From the documentation I understood that the `config.yml` was optional. Any help on a possible solution would be greatly appreciated :)

```
/* generate-docs.js */
/* eslint-disable no-console */
process.env.NODE_ENV = 'production';

var documentation = require('documentation');
var paths = require('../config/paths');
var streamArray = require('stream-array');
var vfs = require('vinyl-fs');

var files = [
'src/index.js',
'src/entities/player.js'
];

console.log('Building API documentation...');

documentation.build(files, {shallow: true})
.then(documentation.formats.html)
.then(function(output){
streamArray(output).pipe(vfs.dest(paths.appBuildDocs));
console.log('API docs generated');
})
.catch(function(err){
console.log(err);
});
```

Edit: some additional info, it works for version `4.0.0-beta.18` with the following code:

```
/* eslint-disable no-console */
process.env.NODE_ENV = 'production';

var documentation = require('documentation');
var paths = require('../config/paths');
var streamArray = require('stream-array');
var vfs = require('vinyl-fs');

var files = [
'src/index.js',
'src/entities/player.js'
];

console.log('Building API documentation...');

documentation.build(files, {shallow: true}, function(err, res) {
if(err) {
console.error(err);
return;
}
documentation.formats.html(res, {}, function(err, output) {
streamArray(output).pipe(vfs.dest(paths.appBuildDocs));
console.log('API docs generated');
});
});
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.