0

私は Sails.js が初めてで、gruntfile に追加のタスクを追加する際に問題が発生しています。私がやろうとしているのは、Less で autoprefixer を使用することですが、「sails lift」を呼び出すたびに、次のエラーが発生します。

error: Grunt :: Warning: Task "autoprefixer:multiple_files" not found. Use --force to continue.

>> Tasks directory "grunt-autoprefixer" not found.

gruntfile に追加した行は次のとおりです。

grunt.loadTasks('grunt-autoprefixer');

grunt.initConfig({
  autoprefixer: {
    options: {
      browsers: ['last 2 version', 'ie 8', 'ie 7']
    },
    multiple_files: {
      expand: true,
      flatten: true,
      src: 'assets/linker/styles/*.css',
      dest: 'assets/linker/styles/'
    },
    concat: {
      src: 'assets/linker/styles/*.css',
      dest: 'assets/linker/styles/s.css'
    }
  },
//Rest of initConfig...

//compileAssets task
grunt.registerTask('compileAssets', [
  'clean:dev',
  'jst:dev',
  'less:dev',
  'autoprefixer:multiple_files',
  'copy:dev',    
  'coffee:dev'
 ]);

compileAssets タスクから「multiple_files」を削除しようとしました。オートプレフィクサーをローカルとグローバルの両方にインストールしようとしましたが、サイコロはありません。常に同じエラーが発生します。

何か案は?

ありがとう!

4

2 に答える 2

3

三文字抜けてますね。

grunt.loadTasks('grunt-autoprefixer');

次のようにする必要があります。

grunt.loadNpmTasks('grunt-autoprefixer');

前者は指定したディレクトリからタスクをロードし、後者は のディレクトリからタスクをロードしますnode_modules

于 2013-11-10T13:13:33.183 に答える
3

を使用し、使用loadNpmTasksしないでくださいloadTasks

loadNpmTasksからローカルにインストールされたモジュールをロードしますnode_modules。これはあなたが使用する必要があるものです。

loadTasks指定されたディレクトリからコードをロードし、package.json の読み取り、モジュールの依存関係の再帰、および処理するその他の適切なことは行いませんloadNpmTasks

これがエラーが表示される理由です: loadTasks「grunt-autoprefixer」というディレクトリを探しています。

ソースを読むのが好きなら、この行の直前のコードで何が起こっているかを見ることができます。:)

また、注意: grunt モジュールは、動作するため、ローカルにインストールする必要がありますloadNpmTasks。これは仕様によるものです。ローディング機能がどのように機能するかを想定していたため、最初に grunt を使い始めたときにこれに引っ掛かりました。おっと。

于 2013-11-10T13:28:35.877 に答える