Open sounisi5011 opened 4 years ago
うまくやればpreloadも全自動で取得できるかもしれない。そしたらあのややこしい手製ローカルプラグインとはサヨナラだ!
PugはParcelで処理するべきではないかもしれない。Pugに渡すメタデータをどうすればいい?
軽く試してみたが、動作がいまいち安定しない。ファイルの参照が常にプロジェクト・ルートになってしまう。npmパッケージの参照もルートからの相対パスでないと機能しない。PostHTMLを使用して擬似的に再現するのが良い案だと考える。
軽く試してみたが、動作がいまいち安定しない。ファイルの参照が常にプロジェクト・ルートになってしまう。npmパッケージの参照もルートからの相対パスでないと機能しない。PostHTMLを使用して擬似的に再現するのが良い案だと考える。
<link>
要素、<script>
要素などを追加、あるいは置換こんなとこだろうか。CSSやJSや外部リソースは別のディレクトリ内から読み込めるようにしたほうがいいだろう。必要なファイルだけをメインのMetalsmithパイプラインに追加する。
軽く試してみたが、動作がいまいち安定しない。ファイルの参照が常にプロジェクト・ルートになってしまう。npmパッケージの参照もルートからの相対パスでないと機能しない。PostHTMLを使用して擬似的に再現するのが良い案だと考える。
ソースコードをデバッグしながら動かした感じだと、src
ディレクトリ内からnode_modules
を参照するためには/../node_modules/
を先頭に追加しないといけないようだ。
/
はParcelに渡されたエントリファイル全てに共通する親ディレクトリrootDir
を基準にパス解決する~
は処理対象のファイルがnode_modules/xxx
ディレクトリ以下に置かれている場合に、node_modules/xxx
ディレクトリを基準にパス解決する。つまり、
src/node_modules/foo/hoge.html
src/node_modules/foo/bar/hoge.html
内で
~module/dist/xxxx.js
~/module/dist/xxxx.js
を読み込むとsrc/node_modules/foo/module/dist/xxxx.js
になる
src/subdir/node_modules/foo/hoge.html
src/subdir/node_modules/foo/bar/hoge.html
内で
~module/dist/xxxx.js
~/module/dist/xxxx.js
を読み込むとsrc/subdir/node_modules/foo/module/dist/xxxx.js
になる
package rootってそういうことか…~
は使わないほうがいいなこりゃ…
Parcelを使ったら、PugもPostCSSもBabelもまとめられる上に、PostHTMLの力で編集や変換だって可能になるぞ。ぜひ導入したい!