Node.Js API
Быстрый способ
var webpack = require("webpack");
// returns a Compiler instance
webpack({
// configuration
}, function(err, stats) {
// ...
});
Длительный способ
var webpack = require("webpack");
// returns a Compiler instance
var compiler = webpack({
// configuration
});
compiler.run(function(err, stats) {
// ...
});
// or
compiler.watch({ // watch options:
aggregateTimeout: 300, // wait so long for more changes
poll: true // use polling instead of native watchers
// pass a number to set the polling interval
}, function(err, stats) {
// ...
});
Compiler
Экземпляр Compiler имеет следующие методы
compiler.run(callback) — Сборка пучка(ов). Она выполняется инкрементально.
- callback(err, stats) — Функция, которая будет вызвана по завершении сборки.
var watcher = compiler.watch(watchOptions, handler) — Сборка пучка(ов), а затем запуск наблюдателя, который пересобирает пучки всякий раз, когда изменяются исходные файлы. Возвращает экземпляр Watching. Примечание: поскольку это автоматически выполнит начальную сборку, вам нужно выполнить только watch (и не run).
-
watchOptions-
watchOptions.aggregateTimeout— После изменения наблюдатель ожидает указанное время (в миллисекундах) для получения дополнительных изменений. По умолчанию: 300. -
watchOptions.poll— Наблюдатель использует метод опроса вместо родных наблюдателей.trueиспользует интервал по умолчанию; число указывает интервал в миллисекундах. По умолчанию: undefined (автоматически).
-
-
handler(err, stats)— Функция, которая будет вызвана при завершении сборки или возникновении ошибки или предупреждения. (Обратите внимание, чтоhandlerвызывается несколько раз. Может даже произойти так, чтоhandlerвызывается для одного и того же пучка несколько раз. В таких случаях webpack не уверен в изменениях и выполняет пересборку.)
Watching
Экземпляр Watching имеет следующий метод:
watcher.close(callback) — останавливает наблюдатель.
-
callback— Функция, которая вызывается при закрытии наблюдателя.
stats
Объект Stats предоставляет следующие методы:
stats.hasErrors()
Возвращает true, если при компиляции произошли ошибки.
stats.hasWarnings()
Возвращает true, если при компиляции возникли предупреждения.
stats.toJson(options)
Возвращает информацию в формате JSON.
Существует несколько уровней ведения журналов, передайте их как options (например, `stats.toJson(“verbose”)):
"none" (или false) ничего не выводят
"errors-only" выводят только при ошибках
"minimal" выводят только при ошибках или новой компиляции
"normal" (или true) стандартный вывод
"verbose" выводят всю информацию, имеющуюся у webpack
Для более точного управления передайте объект, в котором можно установить следующие булевы значения:
options.context (строка) каталог контекста для сокращения запросов
options.hash добавляет хеш компиляции
options.version добавляет информацию о версии webpack
options.timings добавляет информацию о времени
options.assets добавляет информацию об активах
options.chunks добавляет информацию о блоках (установка этого значения в false позволяет получить менее подробный вывод)
options.chunkModules добавляет информацию о построенных модулях в информацию о блоках
options.modules добавляет информацию о построенных модулях
options.children добавляет информацию о дочерних элементах
options.cached добавляет информацию о кэшированных (не построенных) модулях
options.reasons добавляет информацию о причинах включения модулей
options.source добавляет исходный код модулей
options.errorDetails добавляет детали ошибок (например, логи разрешения)
options.chunkOrigins добавляет информацию об источниках блоков и сведении о слиянии блоков
options.modulesSort (строка) сортировка модулей по этому полю
options.chunksSort (строка) сортировка блоков по этому полю
options.assetsSort (строка) сортировка активов по этому полю
Вот пример результирующего JSON: пример результирующего JSON.
Примечание: Если вы хотите извлечь имя актива для создания страницы HTML, используйте свойство
assetsByChunkName, которое содержит объект, сопоставляющийchunkNameс именем(ами) актива(ов) (это строка или массив строк).
stats.toString(options)
Возвращает отформатированную строку результата.
options идентичны options в toJson.
options.colors С цветами консоли
Вот пример использования stats.toString.
var webpack = require("webpack");
webpack({
// configuration
}, function(err, stats) {
if (err) { throw new gutil.PluginError('webpack:build', err); }
gutil.log('[webpack:build]', stats.toString({
chunks: false, // Makes the build much quieter
colors: true
}));
});
Обработка ошибок
Для обработки всех ошибок и предупреждений с помощью API node.js необходимо проверить err, stats.errors и stats.warnings.
var webpack = require("webpack");
webpack({
// configuration
}, function(err, stats) {
if(err)
return handleFatalError(err);
var jsonStats = stats.toJson();
if(jsonStats.errors.length > 0)
return handleSoftErrors(jsonStats.errors);
if(jsonStats.warnings.length > 0)
handleWarnings(jsonStats.warnings);
successfullyCompiled();
});
Компиляция в память
var MemoryFS = require("memory-fs");
var webpack = require("webpack");
var fs = new MemoryFS();
var compiler = webpack({ ... });
compiler.outputFileSystem = fs;
compiler.run(function(err, stats) {
// ...
var fileContent = fs.readFileSync("...");
});
© 2012–2015 Tobias Koppers
Licensed under the MIT License.
https://webpack.github.io/docs/node.js-api.html