2016-07-24 10 views
0

しかし、私はサイト上のいずれかのページでノックアウトを使用しています。私は共有ビューにノックアウトを含めたくないし、デフォルトではすべてのファイルを1つのファイルにまとめるとJSファイルの1つがKOに依存するため、JSエラー "ko is undefined"が発生する。縮小化CSS/JS

メインの「site.min.css」にファイルを連結することなく、ファイルを個別にミニファイル化できる方法はありますか?

答えて

1

まず、ノックアウトファイルをmin:jsタスクから除外する必要があります。そして、あなたはノックアウトファイルを縮小化が、何もしない新しいタスクmin:knockoutを作成する必要が

gulp.task("min:js", function() { 
    return gulp.src([ 
     paths.js, 
     "!" + paths.minJs, 
     "!js/path/to/knockout.js" // don't include knockout in _site.min.js 
     ], { base: "." }) 
    .pipe(concat(paths.concatJsDest)) 
    .pipe(uglify()) 
    .pipe(gulp.dest(".")); 
}); 

!とパスを付加すると、そのファイルを無視するように飲み込むよう指示します。拡張されたファイルは、拡張子が.min.jsで終わるようにしてください。gulp-renameプラグインもインストールする必要があります。

var rename = require('gulp-rename'); 

gulp.task("min:knockout", function() { 
    return gulp.src("js/path/to/knockout.js", { base: "." }) 
    .pipe(rename("js/_knockout.min.js")) 
    .pipe(uglify()) 
    .pipe(gulp.dest(".")); 
}); 

最後に、あなたがminminPreBuildタスクを実行するときに、あなたの新しいmin:knockoutタスクが実行されていることを確認する必要があります。

gulp.task("min", ["min:js", "min:knockout", "min:css"]); 
gulp.task("minPreBuild", ["min:js", "min:knockout", "min:css"]); 
+0

私は不明であったと思います申し訳ありませんが、それは私はそれが問題だ縮小化しています自分自身をノックアウトいませんそれはノックアウト機能を参照する私のサイトのjsファイルの1つです。この1ページにはノックアウトがありますので、 "main.js"に同梱されることは望ましくありません。ノックアウトはすべてのページに含まれていなければならないので、 "blog.js"そのノックアウトへの依存。うまくいけばそれは理にかなっていますか – Kritner

+0

だから何?違いはありません。 'knockout.js'の代わりにそのJavaScriptファイルを除外しなければならないということです。上記の私の答えはまだ適用されます。 –

+0

ああ、確かに私はちょっと、感謝のショットを与えるよ! – Kritner

関連する問題