4

次のような1対1のマッピングでファイルを醜くしています:

    plugins: {
        files: [{
            expand: true,
            src: '*.js',
            cwd: 'Scripts/v1/Plugins',
            dest: 'Scripts/v1/Build/Plugins',
            ext: '.min.js'
        }]
    },

ファイル名に複数のドットを使用してファイルの名前を付け始めるまで、これは正常に機能します。したがって、上記のスクリプトは
4 つのファイルを醜くします:
plugins.a.js
plugins.b.js
plugins.c.js
plugins.d.js

1 つのファイルに:

plugins.min.js

私が期待している間:

plugins.a.min.js
plugins.b.min.js
plugins.c.min.js
plugins.d.min.js

これは予想される動作ですか、それともバグですか? いずれにしても、命名規則で 1 対 1 のマッピングを維持するにはどうすればよいでしょうか。

4

3 に答える 3

6

これに対する解決策を見つけることができましたか?私は彼らの github ですべての問題を確認しましたが、明らかに修正されているはずですが、最新のビルドでも同じ動作が得られます。

編集:解決策は、関数を渡してrename手動でファイル名を作成することでした

files: {
            src: 'src/hp-lp-<%= pkg.version %>.js',
            dest: 'src/',
            expand: true,
            flatten: true,
            rename: function (dest, src) {
                var folder = src.substring(0, src.lastIndexOf('/'));
                var filename = src.substring(src.lastIndexOf('/'), src.length);

                filename = filename.substring(0, filename.lastIndexOf('.'));

                return dest + folder + filename + '.min.js';
            }
        }
于 2013-11-12T02:15:42.743 に答える
4

これは現在、デフォルトの予想される動作です。

これはうなり声で数回持ち出されました:

最初のリンクから、変更がノード グロビュールに送信され、最初または最後のドットを選択できます。

それ以外 (または着陸するまで) は、必要な動作を取得するために名前変更関数を使用できます。

于 2013-05-18T04:48:26.847 に答える
3

ext の代わりに extDot を使用します。

Grunt では、これがファイル名を複数のドットに一致させ、ファイル拡張子を除いて元のドット シーケンスを含むファイル名に書き込む方法です。

すなわち

/path/to/module.somename.scss -> /path/to/module.somename.css

例:

files: [{
  expand: true,
  src: ['public_html/**/*.scss'],
  extDot: 'first',
  rename  : function (dest, src) {

    var _new_ext = 'css';

    //Get src filename
    src = src.split("/");
    var filename = src.pop();

    //Apply new extension to filename
    var arr  = filename.split(".");
    arr.pop();
    arr.push(_new_ext);
    filename = arr.join(".");

    dest = dest || src.join("/");

    return dest + '/' + filename;
  }
}]

要点: https://gist.github.com/tecfu/f84a65ffa850a0bc2e88

于 2014-09-26T08:28:49.847 に答える