私はかなり特殊な問題があります:Sails.jsとmachinepack-sailsgulpifyを使って複雑なスタックを構築しようとしています。gulp-inject:pugを使用したときの開始タグの終了タグがありません
私のテンプレートに資産を注入するには、マシンパックの示唆しているように、gulp-inject
プラグインを使用します。問題は、html
とejs
以外のものではインジェクタが動作しないことです。それは単に何も変わらない。エラーはありません。
gulp.task('sails-linker-gulp:devViews', function() {
return gulp.src('views/**/*.?(html|ejs|jade|pug|haml|slim|dust)') // Read templates
.pipe(
plugins.inject(
gulp.src(require('../pipeline').jsFilesToInject, {read: false}), // Link the javaScript
{
starttag: generateScriptStartTag,
endtag: generateScriptEndTag,
ignorePath: '.tmp/public',
transform: (filepath, file, i, length) => {
return `script(src="${filepath}")`;
}
}
)
)
.pipe(
plugins.inject(
gulp.src(require('../pipeline').cssFilesToInject, {read: false}), // Link the styles
{
starttag: generateStyleStartTag,
endtag: generateStyleEndTag,
ignorePath: '.tmp/public'
}
)
)
.pipe(
plugins.inject(
gulp.src(['.tmp/public/jst.js'], {read: false}), // Link the JST Templates
{
starttag: generateTemplateStartTag,
endtag: generateTemplateEndTag,
ignorePath: '.tmp/public'
}
)
)
.pipe(gulp.dest('views/'))// Write modified files...
はgenerateScriptStartTag
と、このような機能については心配しないでください、彼らは制御のためにそこにあると私は、彼らは多くのことをテストし、正しく動作1000%確信している:
私の仕事は、このようになります。これらのタグは、次のような種類のタグを生成します。
//- SCRIPTS
//- SCRIPTS END
テンプレート言語によって異なります。
カスタムトランスフォーム機能を追加できませんでした。 ejs
またはhtml
を使用するか、実際にhtml構文に似ているものがあれば正常に動作します。
帆について:セイルズは開発中の要求に応じてテンプレートをレンダリングするため、注入前にテンプレートをコンパイルするための巨大なタスクを追加することはできません。実際にはそれらを任意のディレクトリにプリコンパイルするわけではありません。そして正直なところ、私はどうして?注射はちょうど私の.jade/.pugファイルに行を追加するだけです。ファイルはすでにあるので、そこに問題があるのはわかりません。views
誰かに助言することはできますか?
UPDATE:コードの むしろイライラ検査長さ0を持っており、ノードインスペクタでストリームのcontent
を検査するとき、私はコメントを見ていないのinject
機能を実行しているときに「マッチ」プロパティを明らかにし、ファイルにはっきりと記載されているにもかかわらず、彼らは撤去されました。
UPDATE#2: 私はejについて間違っていたようです。 HTMLファイルのみが処理されます。また、注入コメントを検出しなかった場合でも正常に機能します。しかし、それが終わった場合には、そのファイルに対しては決して決して放出されず、何も注入されません。これはすべてのテンプレートエンジンに当てはまります。静的なHTMLファイルだけが正常に動作します。
UPDATE#3: デバッグの他の5時間後、私はこの問題は、しかし、ストリームの私の理解がどの近いソリューションに私を得るために十分ではありませんがわかりました。問題は、プラグインのinject
機能には、適切に終了しないループがあり、必要なタグをストリームに完全に挿入している間に、同じストリーム(注入されたタグ付き)でループを再実行し、エラー。 なぜこのエラーは私が知らないどのコンソールにも現れなかったが、そこに行く。誰かが助けてくれますか?私は完全にこれで失われている...それはプラグインのバグですか?