8

grunt-useminプラグインを使用しています。以下、どうしようかな。

に usemin config の 2 つのブロックがありindex.htmlます。

<!-- build:js /scripts/scriptsmin.js -->
<script src="/scripts/jquery.min.js"></script>
...
...
<!-- endbuild -->

<!-- build:js /scripts/scripts.js -->
<script src="/scripts/app.js"></script>
....
...
<!-- endbuild --> 

最初のブロックscriptsmin.jsは縮小されたファイルです。2 番目の にはscripts.js、縮小が必要なすべてのファイルが含まれています。

私はするのが好きです。

  1. 2 番目のブロックでミニファイヤ (uglifyjs) を実行する
  2. 最初のブロックを 2 番目の縮小版と連結する (ステップ 1)

これらのブロックが同じファイルにある場合は可能ですか。フローのセクションを見ました。構成のブロックに名前を付けて、それぞれに個別のフローを設定できるかどうかを追跡できませんでした。ファイル名(index.html)に基づいたフローについて話します。うなり声の部分はどのように書けばよいでしょうかuseminPrepare

4

2 に答える 2

2

I had the same problem. If you'll be satisfied with two files instead of one you can use a fork of usemin here. It enables few new flows, namely

  • libs
  • libs2min
  • void
  • remove

See full descriptions. So your html would be:

<!-- build:libs2min /scripts/scriptsmin.js -->
<script src="/scripts/jquery.js"></script>
...
...
<!-- endbuild -->

<!-- build:js /scripts/scripts.js -->
<script src="/scripts/app.js"></script>
....
...
<!-- endbuild --> 

Nesting the blocks isn't probably a good idea right now unfortunately. But you could try it out.

To install the fork instead of the regular grunt-usemin change your package.json as so

"devDependencies": {
    ...
    "grunt-usemin": "Rauno56/grunt-usemin",
    ...
},

and keep an eye on the main repo - maybe the feature isn't to far from getting there too.

于 2014-01-15T17:51:37.880 に答える
0

JavaScript ファイルに 2 つの個別のターゲットが必要な理由を考えてみてください。特に、それらを縮小して 1 つのファイルに連結する場合はなおさらです。私がすることは、次のように、ファイルの最後にスクリプト ブロックを 1 つだけ置くことです。

<!-- build:js /scripts/scripts.js -->
<script src="/scripts/jquery.min.js"></script>
<script src="/scripts/app.js"></script>
<!-- endbuild -->

すべての JS が 2 つではなく 1 つのブロックにある場合、そのように理解しやすくなります。これuseminPrepareは、基本的に Gruntfile 構成を更新して、スクリプトとスタイルの concat、cssmin、および uglify ターゲットを含めるタスクです。ビルドコメントが含まれているファイルで実行するだけです。

useminPrepare: {
    html: 'build/index.html'
}

usemin は useminPrepare とあまり変わらないように見えるべきではありませんが、HTML の残りの部分と同じビルド ブロックが含まれている場合は、useminPrepare に 1 つのファイルを「シード」することをお勧めします。したがって、実際の usemin 構成にはさらにいくつかのファイルが含まれる可能性があります。

usemin: {
    html: ['build/index.html', 'build/about.html', 'build/contact.html']
}

useminPrepare の実行後、concat、uglify、および cssmin タスクを実行し、最後に usemin を実行します。したがって、次のようなカスタム タスクがあります。

grunt.registerTask('build', ['useminPrepare', 'concat', 'uglify', 'cssmin', 'usemin']);

お役に立てれば。

于 2013-10-27T17:38:57.843 に答える