1

私は Sails.js を初めて使用しますが、ここ数日でたくさんのドキュメントを読んでいるので、プラットフォームの基本的な理解ができたように感じます。しかし、カスタム grunt タスクを追加して登録することはできないようです。いくつかの方法を試しましたが、どれもうまくいかないようです。したがって、単純にして、既存のレジスタ ファイルの 1 つにタスクを登録するだけでよいと考えましたが、まだこの方法を機能させるつもりはありません。

そこで、次の Gruntfile を tasks/config/comp.js に追加しました

module.exports = function(grunt) {
    grunt.config.set('comp', {
        dev: {
            options: {
                module: 'system',
                moduleResolution: 'node',
                target: 'es3',
                experimentalDecorators: true,
                emitDecoratorMetadata: true,
                noImplicitAny: false
            },
            files: [{
                expand: true,
                cwd: 'assets/js/',
                src: [ '**/*.ts' ],
                dest: '.tmp/public/js',
                ext: '.js'
            }]
        }
    });

    grunt.loadNpmTasks('grunt-ts');
};

そして、次の行を tasks/register/compileAssets.js に追加しました

/**
 * `compileAssets`
 *
 * ---------------------------------------------------------------
 *
 * This Grunt tasklist is not designed to be used directly-- rather
 * it is a helper called by the `default`, `prod`, `build`, and
 * `buildProd` tasklists.
 *
 * For more information see:
 *   http://sailsjs.org/documentation/anatomy/my-app/tasks/register/compile-assets-js
 *
 */
module.exports = function(grunt) {
  grunt.registerTask('compileAssets', [
    'clean:dev',
    'jst:dev',
    'less:dev',
    'copy:dev',
    'coffee:dev',
    'comp:dev'
  ]);
};

ただし、実行するたびにsails lift次のエラーが発生します

info: アプリを起動しています...

情報: 情報: .-..-. info: info: セイル <| .-.-. 情報: v0.12.13 |\ 情報: /|.\ 情報: / || \ 情報: ,' |' \ info: .-'.-==|/_--' info: --'-------' info: __---___--___---___--___---___--___ info: ____---___--___---___--___---___--___-__ info: info: Server lifted inC:\Users\josh\Documents\PGW` info: To see your app, visit http://localhost:1337 info: To shut down Sails 、いつでも + C を押します。

デバッグ: ------------------------------------------------ ------- デバッグ: :: Thu Jun 08 2017 16:32:01 GMT-0600 (山岳夏時間)

デバッグ: 環境: 開発デバッグ: ポート: 1337 デバッグ: -------------------------------------- ----------------- error: ** Grunt :: エラーが発生しました。**

エラー:

警告のため中止されました。

警告: タスク "comp:dev" が見つかりません。

エラー: Grunt エラーが発生したようです-- エラー: 修正してから、Sailsを再起動してタスクの実行を続行してください (アセットの変更の監視など) エラー: または、行き詰まった場合は、以下のトラブルシューティングのヒントを確認してください。

エラー: トラブルシューティングのヒント: エラー: エラー: *-> "grunt" および関連する grunt タスク モジュールはローカルにインストールされていますか? npm installわからない場合は実行してください。エラー: エラー: *-> LESS、SASS、CoffeeScript ファイルなどの形式が正しくない可能性があります。 エラー: エラー: *-> または、.tmpディレクトリにアクセスする権限がありませんか? エラー: 例: C:\Users\josh\Documents\PGW\.tmp? エラー: エラー: これが当てはまると思われる場合は、実行してみてください: エラー: sudo chown -R YOUR_COMPUTER_USER_NAME C:\Users\josh\Documents\PGW.tmp

私はこれに対して何時間も頭を悩ませてきましたが、なぜsails lift私のタスクが実行されないのか理解できません。帆のドキュメントと他のスタックオーバーフローの記事を読む間の指示に従っているように感じます。誰かが私がここで欠けているものを理解するのを手伝ってくれますか?

ありがとう

4

1 に答える 1

1

comp定義したターゲットを実行しようとしていますが、grunt は関連するタスク名を見つけられませんcomp --> それを実行するための grunt プラグインマッピング。

使用しようとしているようですgrunt-ts

grunt.loadNpmTasks('grunt-ts');

タスクを追加しtsます。ターゲット定義で「comp」を次のように変更tsします。

grunt.config.set('ts', {

compileAssets.js ファイルを更新します。

 grunt.registerTask('compileAssets', [
        'clean:dev',
        'jst:dev',
        'less:dev',
        'copy:dev',
        'coffee:dev',
        'ts:dev' //execute grunt-ts
      ]);

これは修正するのに十分なはずです。問題が解決しない場合は、次のものがgrunt-tsインストールされていることを確認してください。

npm install grunt-ts

タスク名をプラグインに静的にマップしたい場合は、jit-grunt のようなものを使用してこれを行うことができます。

require('jit-grunt')(grunt, {
      comp: 'grunt-ts', //comp now maps to grunt-ts plugins
});
于 2017-06-09T10:54:02.577 に答える