Rollup предоставляет полноценный интерфейс управления сборкой через командную строку, позволяющий настраивать процесс бандлинга без необходимости писать отдельный конфигурационный файл. CLI используется как для простых сценариев сборки, так и для быстрых прототипов, автоматизации и интеграции в скрипты npm.
Ключевой принцип CLI Rollup — приоритет явных параметров над конфигурацией. Любая опция, переданная через командную строку, перекрывает значения из конфигурационного файла, если он используется совместно с CLI.
Минимальный запуск сборки выполняется с указанием входного и выходного файлов:
rollup input.js --file output.js --format esm
Здесь:
input.js — точка входаoutput.js — результат сборки--format esm — формат модуля (ESM)Ключевые форматы:
esm — ES Modulescjs — CommonJSiife — самовызывающаяся функция (для браузера)umd — универсальный форматrollup --input src/main.js --file dist/bundle.js --format cjs
Альтернативный короткий синтаксис:
rollup src/main.js -o dist/bundle.js -f cjs
Параметры:
-i, --input — входной файл или точка входа-o, --output.file — выходной файл-f, --format — формат сборкиRollup поддерживает сборку нескольких модулей:
rollup --input src/main.js src/admin.js --dir dist --format esm
В этом случае используется директория вывода:
--dir dist — вывод в папкуДля анализа или промежуточной обработки:
rollup src/main.js --format esm --silent
Или:
rollup src/main.js --format esm --output.inlineDynamicImports
Rollup автоматически ищет конфигурационные файлы, но их можно явно указать:
rollup --config rollup.config.js
Также поддерживаются альтернативные пути:
rollup --config ./config/rollup.prod.js
CLI позволяет передавать аргументы в конфигурационный файл:
rollup --config rollup.config.js --configDebug true
В конфиге:
export default (commandLineArgs) => {
return {
input: 'src/main.js',
output: {
file: 'dist/bundle.js',
format: commandLineArgs.configDebug ? 'cjs' : 'esm'
}
};
};
CLI поддерживает автоматическую пересборку при изменении файлов:
rollup -i src/main.js -o dist/bundle.js -f esm --watch
Хотя основная работа с плагинами происходит через конфигурационный файл, CLI поддерживает их загрузку через конфиг:
rollup --config
А в конфиге:
import resolve from '@rollup/plugin-node-resolve';
export default {
input: 'src/main.js',
output: {
file: 'dist/bundle.js',
format: 'esm'
},
plugins: [
resolve()
]
};
CLI лишь активирует конфигурацию, где уже определяется цепочка плагинов.
Для генерации карт исходников:
rollup src/main.js -o dist/bundle.js -f esm --sourcemap
Доступны варианты:
--sourcemap--sourcemapExcludeSources--sourcemapFileПример:
rollup src/main.js -o dist/bundle.js -f esm --sourcemap --sourcemapFile dist/bundle.js.map
CLI позволяет управлять оптимизацией бандла:
rollup src/main.js -o dist/bundle.js -f esm --compact
Также:
--minify (через плагины, например terser)--treeshake (по умолчанию включен)--no-treeshake — отключение tree-shakingПример отключения:
rollup src/main.js -o dist/bundle.js -f esm --no-treeshake
Через CLI можно указать внешние модули:
rollup src/main.js -o dist/bundle.js -f cjs --external react
Для нескольких зависимостей:
rollup src/main.js -o dist/bundle.js -f cjs --external react,react-dom
Смысл external:
При использовании форматов iife или umd
необходимо явно задавать глобальные зависимости:
rollup src/main.js -o dist/bundle.js -f iife --name MyLib --globals react:React
Параметры:
--name — глобальное имя библиотеки--globals — маппинг внешних зависимостейRollup поддерживает массив конфигураций:
rollup --config
Если конфиг возвращает массив:
export default [
{
input: 'src/main.js',
output: {
file: 'dist/app.esm.js',
format: 'esm'
}
},
{
input: 'src/main.js',
output: {
file: 'dist/app.cjs.js',
format: 'cjs'
}
}
];
CLI выполнит обе сборки последовательно.
CLI предоставляет контроль над выводом информации:
rollup src/main.js -o dist/bundle.js -f esm --silent
Доступные режимы:
--silent — минимум информации--verbose — расширенный логДля ускорения повторных сборок используется кэш:
rollup --cache src/.rollup.cache.json
Кэш позволяет:
Rollup CLI не управляет env напрямую, но они доступны через Node.js:
NODE_ENV=production rollup -i src/main.js -o dist/bundle.js -f esm
В конфиге:
const production = process.env.NODE_ENV === 'production';
rollup src/index.js \
--file dist/bundle.js \
--format esm \
--sourcemap \
--external react,react-dom \
--name MyLibrary \
--watch
Этот запуск объединяет:
Rollup CLI завершает процесс с кодом ошибки при:
Типичный вывод ошибки включает:
Использование командной строки влияет на подход к конфигурации:
rollup.config.jsCLI в Rollup выступает не как вспомогательный инструмент, а как полноценный интерфейс управления графом сборки и параметрами трансформации модулей.