0

私はgrunt構築ツールの作成に取り組んでいますが、これまでは grunt.js ファイルにアドレスを直接入れsrcdestいましたが、この場合、dest を変更したい場合は、ファイルのすべてのタスクで変更する必要がありますが、これはお勧めできません。たとえば、grunt.js ファイルに次のタスクがあるとします。

concat: {
  js: {
    src: 'src/js/*.js',
    dest: 'dest/js/concat.js'
  },
  css: {
    src: 'src/css/*.css',
    dest: 'dest/css/concat.css'
  }
},
min: {
  js: {
    src: 'dest/js/concat.js',
    dest: 'dest/js/concat.min.js'
  }
},

ここで住所を変更する場合は、すべての場所で変更する必要があります!!! src と dest を宣言してgrunt.jsJSONファイルを呼び出すことができるファイルが必要です。どうすればそれができますか???

4

2 に答える 2

1

package.jsonたとえば、プロパティを追加してメタデータを宣言できます。

{
   "name": "test",
   "meta":{
     "src":"someSrcFolder",
     "dest":"someDestFolder"
   },
 ....
}

次に、あなたGruntfile.jsはこれらのプロパティを次のように読むことができます

grunt.initConfig({
  pkg: '<json:package.json>',
  concat: {
    js: {
      src: '<%= pkg.meta.src %>/js/*.js',
      dest: '<%= pkg.meta.dest %>/js/concat.js'
    },
    css: {
      src: '<%= pkg.meta.src %>/css/*.css',
      dest: '<%= pkg.meta.dest %>/css/concat.css'
    }
  }
});

重要なビットは、json ファイルをメモリにロードする部分と、json ファイルに追加されたプロパティの内容を評価するpkg:<json:package.json>アンダースコア テンプレート補間です。<%= pkg.meta.src %>meta

Gruntfileは単なるJavaScript ファイルであるため、パスへの参照を含むオブジェクトを作成し、それらをタスクに補間することもできます。

于 2012-12-13T23:05:00.910 に答える