Дружественный инструмент для сборки, ориентированный на джемстак
Я создал эту утилиту для конфигураций строительства каркасов для моих стройных проектов. Поскольку я сосредотачиваюсь на современных статических сайтах и клиентских приложениях, которые можно развернуть с помощью NetLify, Sapper включает в себя много инфраструктуры для разработки на стороне сервера, которая мне не нужна. Svelte Kit не за горами в качестве замены следующего поколения для Sapper, но он не может быть готов к производству в ближайшем будущем, поэтому я буду поддерживать этот инструмент CLI, пока у меня не будет солидной замены.
Вот некоторые из функций, которые svelte-render
добавляет поверх конфигурации начала начала:
require()
снова! npm i @metamodern/svelte-render
Сценарий CLI выпускается только как модуль ES. Версия Minimum Node.js составляет 14 (последняя дата выпуска LTS).
npx svelte-render [context] [--key = value]
# default to process.cwd() as context
cd project
npx svelte-render [--key = value]
# skip production optimizations
npx svelte-render --development
# just output HTML from the entry file
npx svelte-render --client=0 --noCss
# specify a custom directory structure
npx svelte-render --src=. --dist=public
# specify the path to your config file
# ** if not at ./render.config.js **
npx svelte-render --configFile=./config/svelte-render.js
Параметры могут быть указаны с использованием файла конфигурации. Файл должен использовать синтаксис импорта/экспорта модуля ES. Его экспорт по умолчанию должен быть функцией, которая принимает объект, содержащий параметры командной строки в качестве его привода, и возвращает объект, определяющий дополнительные параметры для передачи функции рендеринга.
Ожидается, что файл конфигурации будет найден по адресу ./render.config.js
(относительно context
), но из командной строки можно указать пользовательский путь, как показано выше.
См. Ниже список всех вариантов, которые могут быть переданы в функцию рендеринга.
API JavaScript выпускается только как модуль ES. Commonjs require()
не поддерживается.
Экспорт модуля по умолчанию является функцией со следующими параметрами:
async function ( context : string , {
src = 'src' ,
assets = 'assets' ,
dist = 'dist' ,
entry = 'index.svelte' ,
client = 'client.js' ,
noCss = false ,
development = false ,
transpile = ! development ,
rollupInputPlugins = [ ] ,
rollupInputOptions = { } ,
compilerOptions = { } ,
sveltePreprocess = { } ,
svelteOptions = { } ,
terserOptions = { } ,
browsers = 'defaults' ,
babelPresets = [ [ '@babel/preset-env' , {
targets : browsers ,
corejs : 3 ,
useBuiltIns : 'usage' ,
} ] ] ,
babelPlugins = [ ] ,
babelOptions = { } ,
before ,
onRender ,
after ,
} = { } ) : Promise < number > // returns 0 on success
Примечание. Аргумент context
требуется только при использовании API JavaScript. При использовании сценария CLI context
по умолчанию для process.cwd()
.
Следующие параметры могут быть указаны как имена или пути файлов и будут решены по сравнению с context
.
entry
и исходных файлов client
dist
development
включен)client
в false
и не использовать флаг development
) <style>
development
) rollup-plugin-svelte
(под ключом compilerOptions
)rollup-plugin-svelte
(под ключом preprocess
)rollup-plugin-svelte
rollup-plugin-terser
Примечание. Эти параметры игнорируются, когда transpile
устанавливается на false
Рендеринг -крючки - это функции для выполнения в тандеме с основной функцией рендеринга. Каждая функция будет передаваться в разрешенный context
и объект полного параметров. Асинхронные функции поддерживаются.
© 2020 Daniel C. Narey
Лицензия ISC