أداة بناء ودية تركز على Jamstack لتطبيقات Svelte
لقد قمت بإنشاء هذه الأداة المساعدة لتكوينات بناء السقالات لمشاريع سفيلتي. لأنني أركز على المواقع الثابتة الحديثة والتطبيقات من جانب العميل التي يمكن نشرها باستخدام NetLify ، يتضمن Sapper الكثير من البنية التحتية للتطوير من جانب الخادم الذي لا أحتاج إليه. تكون مجموعة Svelte قاب قوسين أو أدنى كبديل من الجيل التالي لـ Sapper ، ولكن قد لا يكون جاهزًا للإنتاج في المستقبل القريب ، لذلك سأحافظ على أداة CLI هذه حتى يكون لدي بديل قوي.
فيما يلي بعض الميزات التي يضيفها svelte-render
فوق تكوين Rollup المبتدئين:
require()
مرة أخرى! npm i @metamodern/svelte-render
يتم إصدار البرنامج النصي CLI كوحدة ES فقط. إصدار الحد الأدنى 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 Module. يجب أن يكون التصدير الافتراضي هو وظيفة تأخذ كائنًا يحتوي على خيارات سطر الأوامر كإرشاده وإرجاع كائن يحدد خيارات إضافية لتمريرها إلى وظيفة التقديم.
من المتوقع العثور على ملف التكوين على ./render.config.js
(بالنسبة إلى context
) ، ولكن يمكن تحديد مسار مخصص من سطر الأوامر كما هو موضح أعلاه.
انظر أدناه للحصول على قائمة بجميع الخيارات التي قد يتم تمريرها إلى وظيفة التقديم.
يتم إصدار JavaScript API كوحدة 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
الذي تم حله وكائن الخيارات الكاملة. يتم دعم وظائف ASYNC.
© 2020 دانييل سي ناري
رخصة ISC