in packages/docpack-examples-compiler/lib/ExamplesCompiler.js [150:209]
ExamplesCompiler.prototype.addFile = function(file, resourcePath) {
// TODO
// ExampleFile optionally may have `context` property for proper dependencies resolving
var compilationContext = file.context || this._compiler.context;
// Add file
this.files.push(file);
var fileIndex = this.files.indexOf(file);
// Get loaders to process example file
var matchedLoaders = this.getLoadersToProcessExampleFile(file);
// Shared loader config
var sharedDataLoaderConfig = {};
sharedDataLoaderConfig['loader'] = SHARED_DATA_LOADER_PATH;
sharedDataLoaderConfig[WEBPACK_VERSION === '1' ? 'query' : 'options'] = {
path: fileIndex.toString() + '.content',
hash: getHash(file.content)
};
var loadersRequest = matchedLoaders
.concat([sharedDataLoaderConfig])
.map(tools.stringifyLoaderConfig)
.join('!');
var fullRequest = format('!!%s!%s', loadersRequest, resourcePath);
// Get file output name
var entryName = this.getOutputFilename(file, resourcePath);
if (this.hasHotModuleReplacement()) {
var serverOpts = this._compiler.parentCompilation.compiler.options.devServer;
var domain = `${serverOpts.https ? 'https' : 'http'}://${serverOpts.host}:${serverOpts.port}`;
var clientEntryPath = require.resolve("webpack-dev-server/client/");
var entries = [`${clientEntryPath}?${domain}`];
if (serverOpts.hotOnly) {
entries.push('webpack/hot/only-dev-server');
} else if (serverOpts.hot) {
entries.push('webpack/hot/dev-server');
}
entries.push(fullRequest);
fullRequest = entries;
}
// Add entry to compiler
this.addEntry(fullRequest, entryName, compilationContext);
return {
file: file,
entryName: entryName,
loaders: matchedLoaders,
loadersRequest: loadersRequest,
fullRequest: fullRequest
}
};