4

Grunt でファイルの依存関係を指定する方法はありますか? つまり、私が持っている場合:

global/page.jade
project/index.jade -- includes global/page.jade
project/about.jade -- includes global/page.jade
project/test.jade

変更してから、再コンパイルglobal/page.jadeしたいと思います。project/index|about.jadeプラグインをチェックアウトしましたが、その機能を提供するものは見つかりませんでした。

4

2 に答える 2

5

次の方法で gruntfile.js でgrunt watch を使用します

...

  watch: {
    scripts: {
      files: 'src/**/*',
      tasks: ['buildDevelopment'],
      options: {
        interrupt: true,
      },
    }

grunt.registerTask('buildDevelopment', ['clean'
                        ,'jade'
                        ,'copy:development'
                        ,'bowercopy:development'
                        ]);

...
于 2014-05-13T09:27:59.133 に答える
2

Atillas ソリューションを強化することをお勧めします。変更のたびにすべてのテンプレートを再構築するのは最適ではなく、大規模なプロジェクトでは腹が立ちます。

役立つものは次のとおりです。


新しいプラグインを使用して、変更されたファイルのみを処理します

インストール: npm install grunt-newer --save-dev
ドキュメント: https://www.npmjs.org/package/grunt-newer#optionsoverride
使用法:

  • タスクに新しいプレフィックスを付けます:
  • grunt.loadNpmTasks('grunt-newer'); を追加します。グラントファイルへ
  • オーバーライド オプションを使用してインクルードを確認します (探している魔法)

newer: { options: { override: function (detail, include) { if (detail.task === 'jade') { checkForModifiedImports(detail.path, detail.time, include); } else { include(false); } } } }



監視を使用してファイルの変更を検出する

インストール: npm install grunt-contrib-watch --save-dev ドキュメント: https://www.npmjs.org/package/grunt-contrib-watch
使用法:

  • grunt.loadNpmTasks('grunt-contrib-watch'); を追加します。グラントファイルへ
  • タスクは次のようになります

watch: { scripts: { files: '**/*.jade', tasks: ['newer:jade'], options: { interrupt: true }, }, }

于 2014-05-14T21:45:51.923 に答える