1

grunt-contrib-htmlminプラグインを使用しています。これは私Gruntfile.jsのように見える方法です:

module.exports = function(grunt) {

  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    htmlmin: {
      dist: {
        options: {
          removeComments: true,
          collapseWhitespace: true
        },
        files: {
          '/views/build/404.html': '/view/src/404.html'
        }
      }
    }
  });

  grunt.loadNpmTasks('grunt-contrib-htmlmin');

  grunt.registerTask('default', ['htmlmin']);
};

本当に特別なことは何もありません。私の 404.html も非常に単純ですが、単純なHTMLファイルでも grunt は機能しません。たとえば、次のHTMLファイルがあるとします。

<html>
    <head>
    </head>
    <body>
    </body>
</html>

それもうまくいきません。結果としてコンソールに表示されるのは次のとおりです。

Running "htmlmin:dist" (htmlmin) task
Minified 0 files (1 failed)

Done, without errors.

失敗した理由はどこで確認できますか?

削除するなど、本当に多くのことを試しました。また、構造をoptions変更しようとしましたが、最終的には次のようになりました。file

files: {
    expand: true,
    cwd: 'views/src/',
    src: '404.html',
    build: 'views/build/404.html'
}

しかし、それも機能せず、現在発生しているエラーは次のとおりです。

Running "htmlmin:dist" (htmlmin) task
Warning: pattern.indexOf is not a function Use --force to continue.

Aborted due to warnings.

私は何を間違っていますか?

4

2 に答える 2

0
  1. ログ実行コマンドを表示するには: grunt task:target --verbose

    あなたの場合は次のようになります: grunt htmlmin:dist --verbose

  2. エラーはファイル パス'/views/build/404.html'にあるようです。「/」は、プラグインが UNIX システムのルート フォルダから検索を開始することを意味します。相対パスを使用:

    'views/build/404.html': 'view/src/404.html'

    また

    './views/build/404.html': './view/src/404.html'

PS他のすべての場合、「ファイル」では、最初にDESTINATIONパスを指定し、次にSRCパスを指定する必要があることに注意してください。

 htmlmin: {
      dist: {
        options: {
          /* options here*/
        },
        files: {
          'path/to/destination/folder/404.html': 'path/to/src/folder/404.html'
        }
      }
    }
于 2016-11-28T15:24:01.990 に答える