9

uglify例: Gruntfile の JS スクリプトに以下の現在の構成を使用しています。

    uglify: {
        options: {
            report: "min", //"gzip",
            sourceMap: true,
            preserveComments: false, //"some", "all"
        },
        application: {
            options: {
                // expand: true,
                banner: '<%= app.banner %>',
                preserveComments: "some"
            },
            src: 'dist/js/application.js',
            dest: ".tmp/js/application.min.js"
        },
        dependencies: {
            options: {
                sourceMap: false
            },
            src: ['dist/js/dependencies.js'],
            dest: ".tmp/js/dependencies.min.js"
        },

grunt-usemin は、 gruntfile オプションで宣言された html ファイルのコード ブロックからsrcおよびdestオプションを生成することを認識しています。次に例を示します。useminPrepare

    <!-- build:js js/app.js -->
    <script src="js/app.js"></script>
    <script src="js/controllers/thing-controller.js"></script>
    <script src="js/models/thing-model.js"></script>
    <script src="js/views/thing-view.js"></script>
    <!-- endbuild -->

したがって、生成されたファイル ブロックでgrunt-useminなどの同じオプションを使用するように構成するにはどうすればよいですか。通常、github または NPM レジストリで提供される簡単なドキュメントを読みましたが、これに対する確かな答えが見つからないようです。bannersourceMap: false

4

1 に答える 1

13

ドキュメントでは、次の 1 つの文が非常に重要です。

さらに、useminPrepare は、concat、uglify、および cssmin の構成を動的に生成します。重要: これらの依存関係を手動で管理し、各タスクを呼び出す必要があります。

原則は、必要なすべてのメインタスクで usemin (grunt register タスク内) を使用することのみを宣言することです: concat、uglify...および html マークアップ コメント。

コードは言葉よりも優れています :

  1. ブロック マークアップターゲット ファイルを表現します。あなたの場合、次のようなもの:
     <!-- build:js js/app.min.js -->
     <script src="js/app.js"></script>
     <script src="js/controllers/thing-controller.js"></script>
     <script src="js/models/thing-model.js"></script>
     <script src="js/views/thing-view.js"></script>
     <!-- endbuild -->

2 - ランタイム中に usemin が生成するタスクを登録します (ファイルには何も生成されません。ドキュメントで正確に説明する必要があります)。例えば ​​:

grunt.registerTask('minify', [ 'useminPrepare' ,'concat' ,'cssmin' ,'uglify' ,'copy'
,'rev ,'usemin' ])

3 - デフォルトでは、useminPrepare と usemin を除くすべてのタスクが生成されます (これら 2 つのブロックgrunt-useminのドキュメントを参照してください)。

次に、sourcemap などの特定のオプションを追加する場合は、すべてを再定義せずに構成コードを書き直すだけです。

uglify: { options: { sourceMap: false } }

それが役に立てば幸い。

于 2014-05-23T15:17:10.477 に答える