2

私はgrunt0.3に対して次のタスクを実行していて、0.4に移動し、registerHelperは非推奨になりました。新しいAPIでこれを実装する正しい方法は何ですか。

module.exports = function(grunt) {
'use strict';

var fs = require('fs');
var path = require('path');
var crypto = require('crypto');

grunt.registerTask('wpversion', 'Set the versions in scripts.php for CSS/JS', function() {
  var scriptsPhp = 'src/lib/include_functions/scripts.php';

  // Hash the CSS
  var hashCss = grunt.helper('md5', 'dist/assets/css/main.min.css');

  // Hash the JS
  var hashJs = grunt.helper('md5', 'dist/assets/scripts/scripts.min.js');

  // Update scripts.php to reference the new versions
  var regexCss = /(wp_enqueue_style\('main_css',(\s*[^,]+,){2})\s*[^\)]+\);/;
  var regexJs = /(wp_register_script\('main_js',(\s*[^,]+,){2})\s*[^,]+,\s*([^\)]+)\);/;

  var content = grunt.file.read(scriptsPhp);
  content = content.replace(regexCss, "\$1 '" + hashCss + "');");
  content = content.replace(regexJs, "\$1 '" + hashJs + "', " + "\$3);");
  grunt.file.write(scriptsPhp, content);
  grunt.log.writeln('"' + scriptsPhp + '" updated with new CSS/JS versions.');
});

/**
* The 'md5' helper is a basic wrapper around crypto.createHash
*/
grunt.registerHelper('md5', function(filepath) {
  var hash = crypto.createHash('md5');
  hash.update(fs.readFileSync(filepath));
  grunt.log.write('Versioning ' + filepath + '...').ok();
  return hash.digest('hex');
});
};
4

2 に答える 2

4

通常の機能にするだけです。大きい場合は、別のファイルに入れて必要とします。他のタスクで再利用できる場合は、他のタスクが使用できるように、ノードモジュールとして公開します。

于 2013-01-16T14:27:24.563 に答える
0

grunt-helpersは廃止され、ノードのが優先されますrequire。レガシーヘルパーの使用を支援するプロジェクトがあります。

https://github.com/gruntjs/grunt-lib-legacyhelpers

于 2013-01-17T19:46:14.900 に答える