Svelteアプリ向けのフレンドリーなJamstack中心のビルドツール
私はこのユーティリティを作成して、SvelteプロジェクトのScaffold Build構成を作成しました。 Netlifyで展開できる最新の静的サイトとクライアント側アプリに焦点を当てているため、Sapperには必要ないサーバー側の開発用の多くのインフラストラクチャが含まれています。 Svelteキットは、Sapperの次世代の代替品として角を曲がっていますが、近い将来には生産対応ではないかもしれないので、しっかりと交換するまでこのCLIツールを維持します。
svelte-render
スターターロールアップ構成の上に追加する機能の一部を以下に示します。
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モジュールのインポート/エクスポート構文を使用する必要があります。デフォルトのエクスポートは、コマンドラインオプションを含むオブジェクトを装備として取得し、レンダリング関数に渡す追加オプションを指定するオブジェクトを返す関数である必要があります。
構成ファイルは./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
注:JavaScript APIを使用する場合にのみ、 context
引数が必要です。 CLIスクリプトを使用する場合、 context
process.cwd()
にデフォルトです。
次のオプションは、ファイル名またはパスとして指定され、 context
に対して解決されます。
entry
およびclient
ソースファイルの親ディレクトリdist
にコピーされる静的資産のディレクトリdevelopment
フラグがオンになっているときに無視されます)client
false
に設定し、 development
フラグを使用しないでください) <style>
ブロックから生成されたCSSを出力しないでくださいdevelopment
フラグが渡されない限り、デフォルトでオンになります) rollup-plugin-svelte
に合格するコンパイラオプション( compilerOptions
キーの下)rollup-plugin-svelte
( preprocess
Keyの下)に合格する前処理機能rollup-plugin-svelte
に合格する追加のオプションrollup-plugin-terser
に合格するオプション注:これらのオプションは、 transpile
がfalse
に設定されている場合に無視されます
レンダーフックは、メインレンダリング関数とタンデムで実行する機能です。各関数は、解決されたcontext
と完全なオプションオブジェクトに渡されます。非同期関数がサポートされています。
©2020 Daniel C. Narey
ISCライセンス